From e57d783ad0d08fdfdc13d8ab6be45e4f17f69aa6 Mon Sep 17 00:00:00 2001 From: Travis Illig Date: Tue, 12 Mar 2024 07:54:54 -0700 Subject: [PATCH 1/5] Update recommended extensions to use C# Dev Kit. --- .vscode/extensions.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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" From 135a8c494a0b7a27822774522203d2f344dff09a Mon Sep 17 00:00:00 2001 From: Travis Illig Date: Tue, 12 Mar 2024 07:55:15 -0700 Subject: [PATCH 2/5] Enable nullable on test assemblies. --- .../Autofac.Multitenant.AspNetCore.Test.csproj | 11 ++++++----- .../Autofac.Multitenant.Test.csproj | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) 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.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 From cee7f5a79ef0eb166b21615438a16bdb4cbf30c0 Mon Sep 17 00:00:00 2001 From: Travis Illig Date: Tue, 12 Mar 2024 07:55:43 -0700 Subject: [PATCH 3/5] Correct nullable annotations around tenant ID strategy. --- src/Autofac.Multitenant/ITenantIdentificationStrategy.cs | 2 +- src/Autofac.Multitenant/MultitenantContainer.cs | 2 +- .../TenantIdentificationStrategyExtensions.cs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) 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; From 9a4655a6ac89c63f2873c46baf9924352db35ce9 Mon Sep 17 00:00:00 2001 From: Travis Illig Date: Tue, 12 Mar 2024 07:56:03 -0700 Subject: [PATCH 4/5] Update test fixtures to use proper nullable annotations. --- .../Stubs/StubTenantIdentificationStrategy.cs | 4 ++-- .../MultitenantContainerFixture.cs | 8 ++++---- .../RegistrationExtensionsFixture.cs | 2 +- .../Stubs/StubTenantIdentificationStrategy.cs | 4 ++-- .../TenantIdentificationStrategyExtensionsFixture.cs | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) 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/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()); } From 3ea67e1881d7c36a0fcc2ffb007cb132db0b27d3 Mon Sep 17 00:00:00 2001 From: Travis Illig Date: Tue, 12 Mar 2024 07:56:21 -0700 Subject: [PATCH 5/5] Semver 8.0.0 => 8.0.1 for nullable fix. --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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'