diff --git a/.vscode/extensions.json b/.vscode/extensions.json index f3ed581..a5f8538 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -3,9 +3,8 @@ "bierner.markdown-emoji", "davidanson.vscode-markdownlint", "editorconfig.editorconfig", - "formulahendry.dotnet-test-explorer", "gruntfuggly.todo-tree", - "ms-dotnettools.csharp", + "ms-dotnettools.csdevkit", "ryanluker.vscode-coverage-gutters", "stkb.rewrap", "travisillig.vscode-json-stable-stringify" diff --git a/appveyor.yml b/appveyor.yml index 03fb21c..063e10c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,9 +1,9 @@ image: Ubuntu -version: '8.0.1.{build}' +version: '8.0.2.{build}' dotnet_csproj: - version_prefix: '8.0.1' + version_prefix: '8.0.2' patch: true file: 'src\**\*.csproj' diff --git a/src/Autofac.Multitenant/ITenantIdentificationStrategy.cs b/src/Autofac.Multitenant/ITenantIdentificationStrategy.cs index 413e341..74fe6ba 100644 --- a/src/Autofac.Multitenant/ITenantIdentificationStrategy.cs +++ b/src/Autofac.Multitenant/ITenantIdentificationStrategy.cs @@ -20,5 +20,5 @@ public interface ITenantIdentificationStrategy /// if not. /// [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Tenant identifiers are objects.")] - bool TryIdentifyTenant(out object tenantId); + bool TryIdentifyTenant(out object? tenantId); } diff --git a/src/Autofac.Multitenant/MultitenantContainer.cs b/src/Autofac.Multitenant/MultitenantContainer.cs index aa05932..6dbf328 100644 --- a/src/Autofac.Multitenant/MultitenantContainer.cs +++ b/src/Autofac.Multitenant/MultitenantContainer.cs @@ -320,7 +320,7 @@ public ILifetimeScope BeginLoadContextLifetimeScope(object tag, AssemblyLoadCont /// /// /// - public void ConfigureTenant(object tenantId, Action configuration) + public void ConfigureTenant(object? tenantId, Action configuration) { if (configuration == null) { diff --git a/src/Autofac.Multitenant/TenantIdentificationStrategyExtensions.cs b/src/Autofac.Multitenant/TenantIdentificationStrategyExtensions.cs index 2937f03..52d4124 100644 --- a/src/Autofac.Multitenant/TenantIdentificationStrategyExtensions.cs +++ b/src/Autofac.Multitenant/TenantIdentificationStrategyExtensions.cs @@ -31,9 +31,9 @@ public static class TenantIdentificationStrategyExtensions throw new ArgumentNullException(nameof(strategy)); } - if (strategy.TryIdentifyTenant(out object id)) + if (strategy.TryIdentifyTenant(out var id)) { - return (T)id; + return (T?)id; } return default; diff --git a/test/Autofac.Multitenant.AspNetCore.Test/Autofac.Multitenant.AspNetCore.Test.csproj b/test/Autofac.Multitenant.AspNetCore.Test/Autofac.Multitenant.AspNetCore.Test.csproj index 2c4ec9d..05e2a72 100644 --- a/test/Autofac.Multitenant.AspNetCore.Test/Autofac.Multitenant.AspNetCore.Test.csproj +++ b/test/Autofac.Multitenant.AspNetCore.Test/Autofac.Multitenant.AspNetCore.Test.csproj @@ -12,6 +12,7 @@ latest AllEnabledByDefault enable + enable @@ -29,22 +30,22 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + all runtime; build; native; contentfiles; analyzers diff --git a/test/Autofac.Multitenant.AspNetCore.Test/Stubs/StubTenantIdentificationStrategy.cs b/test/Autofac.Multitenant.AspNetCore.Test/Stubs/StubTenantIdentificationStrategy.cs index d18257e..77caa9a 100644 --- a/test/Autofac.Multitenant.AspNetCore.Test/Stubs/StubTenantIdentificationStrategy.cs +++ b/test/Autofac.Multitenant.AspNetCore.Test/Stubs/StubTenantIdentificationStrategy.cs @@ -12,9 +12,9 @@ public StubTenantIdentificationStrategy() public bool IdentificationSuccess { get; set; } - public object TenantId { get; set; } + public object? TenantId { get; set; } - public bool TryIdentifyTenant(out object tenantId) + public bool TryIdentifyTenant(out object? tenantId) { tenantId = TenantId; return IdentificationSuccess; diff --git a/test/Autofac.Multitenant.Test/Autofac.Multitenant.Test.csproj b/test/Autofac.Multitenant.Test/Autofac.Multitenant.Test.csproj index c20383b..9d1e4cc 100644 --- a/test/Autofac.Multitenant.Test/Autofac.Multitenant.Test.csproj +++ b/test/Autofac.Multitenant.Test/Autofac.Multitenant.Test.csproj @@ -12,6 +12,7 @@ latest AllEnabledByDefault enable + enable @@ -28,21 +29,21 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + all runtime; build; native; contentfiles; analyzers diff --git a/test/Autofac.Multitenant.Test/MultitenantContainerFixture.cs b/test/Autofac.Multitenant.Test/MultitenantContainerFixture.cs index cca0762..9ffc57e 100644 --- a/test/Autofac.Multitenant.Test/MultitenantContainerFixture.cs +++ b/test/Autofac.Multitenant.Test/MultitenantContainerFixture.cs @@ -123,7 +123,7 @@ public void ConfigureTenant_RequiresConfiguration() TenantId = "tenant1", }; using var mtc = new MultitenantContainer(strategy, builder.Build()); - Assert.Throws(() => mtc.ConfigureTenant("tenant1", null)); + Assert.Throws(() => mtc.ConfigureTenant("tenant1", null!)); } [Fact] @@ -142,13 +142,13 @@ public void ConfigureTenant_ThrowsAfterDisposal() [Fact] public void Ctor_NullApplicationContainer() { - Assert.Throws(() => new MultitenantContainer(new StubTenantIdentificationStrategy(), null)); + Assert.Throws(() => new MultitenantContainer(new StubTenantIdentificationStrategy(), null!)); } [Fact] public void Ctor_NullTenantIdentificationStrategy() { - Assert.Throws(() => new MultitenantContainer(null, new ContainerBuilder().Build())); + Assert.Throws(() => new MultitenantContainer(null!, new ContainerBuilder().Build())); } [Fact] @@ -578,7 +578,7 @@ public void ReconfigureTenant_RequiresConfiguration() using var mtc = new MultitenantContainer(strategy, builder.Build()); mtc.ConfigureTenant("tenant1", b => b.RegisterType().AsImplementedInterfaces().SingleInstance()); - Assert.Throws(() => mtc.ReconfigureTenant("tenant1", null)); + Assert.Throws(() => mtc.ReconfigureTenant("tenant1", null!)); } [Fact] diff --git a/test/Autofac.Multitenant.Test/RegistrationExtensionsFixture.cs b/test/Autofac.Multitenant.Test/RegistrationExtensionsFixture.cs index b958400..6c32205 100644 --- a/test/Autofac.Multitenant.Test/RegistrationExtensionsFixture.cs +++ b/test/Autofac.Multitenant.Test/RegistrationExtensionsFixture.cs @@ -11,7 +11,7 @@ public class RegistrationExtensionsFixture [Fact] public void InstancePerTenant_NullRegistration() { - IRegistrationBuilder registration = null; + IRegistrationBuilder registration = null!; Assert.Throws(() => registration.InstancePerTenant()); } diff --git a/test/Autofac.Multitenant.Test/Stubs/StubTenantIdentificationStrategy.cs b/test/Autofac.Multitenant.Test/Stubs/StubTenantIdentificationStrategy.cs index ec18731..6db8e55 100644 --- a/test/Autofac.Multitenant.Test/Stubs/StubTenantIdentificationStrategy.cs +++ b/test/Autofac.Multitenant.Test/Stubs/StubTenantIdentificationStrategy.cs @@ -12,9 +12,9 @@ public StubTenantIdentificationStrategy() public bool IdentificationSuccess { get; set; } - public object TenantId { get; set; } + public object? TenantId { get; set; } - public bool TryIdentifyTenant(out object tenantId) + public bool TryIdentifyTenant(out object? tenantId) { tenantId = TenantId; return IdentificationSuccess; diff --git a/test/Autofac.Multitenant.Test/TenantIdentificationStrategyExtensionsFixture.cs b/test/Autofac.Multitenant.Test/TenantIdentificationStrategyExtensionsFixture.cs index 56d6757..a3cbc35 100644 --- a/test/Autofac.Multitenant.Test/TenantIdentificationStrategyExtensionsFixture.cs +++ b/test/Autofac.Multitenant.Test/TenantIdentificationStrategyExtensionsFixture.cs @@ -30,7 +30,7 @@ public void IdentifyTenant_FailedRetrieval() [Fact] public void IdentifyTenant_NullStrategy() { - ITenantIdentificationStrategy strategy = null; + ITenantIdentificationStrategy strategy = null!; Assert.Throws(() => strategy.IdentifyTenant()); }