diff --git a/samples/serializers/change-message-type/Core_10/ChangeMessageType.sln b/samples/serializers/change-message-type/Core_10/ChangeMessageType.sln deleted file mode 100644 index 4b157d60192..00000000000 --- a/samples/serializers/change-message-type/Core_10/ChangeMessageType.sln +++ /dev/null @@ -1,25 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29728.190 -MinimumVisualStudioVersion = 15.0.26730.12 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SamplePhase1", "SamplePhase1\SamplePhase1.csproj", "{D1B26244-54D6-4199-BAF5-12A544C70039}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SamplePhase2", "SamplePhase2\SamplePhase2.csproj", "{6E6C9C2A-8D9B-41AF-B5E5-1AF5310686E7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D1B26244-54D6-4199-BAF5-12A544C70039}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D1B26244-54D6-4199-BAF5-12A544C70039}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6E6C9C2A-8D9B-41AF-B5E5-1AF5310686E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6E6C9C2A-8D9B-41AF-B5E5-1AF5310686E7}.Debug|Any CPU.Build.0 = Debug|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2BC70049-9912-4526-925B-A1A7C516CC10} - EndGlobalSection -EndGlobal diff --git a/samples/serializers/change-message-type/Core_10/SamplePhase1/CreateOrderPhase1.cs b/samples/serializers/change-message-type/Core_10/SamplePhase1/CreateOrderPhase1.cs deleted file mode 100644 index 00683664b30..00000000000 --- a/samples/serializers/change-message-type/Core_10/SamplePhase1/CreateOrderPhase1.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; -using NServiceBus; - -public class CreateOrderPhase1 : - IMessage -{ - public DateTime OrderDate { get; set; } -} diff --git a/samples/serializers/change-message-type/Core_10/SamplePhase1/Program.cs b/samples/serializers/change-message-type/Core_10/SamplePhase1/Program.cs deleted file mode 100644 index 7d93dff3f41..00000000000 --- a/samples/serializers/change-message-type/Core_10/SamplePhase1/Program.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using NServiceBus; - -Console.Title = "Phase1"; - -var builder = Host.CreateApplicationBuilder(args); - -var endpointConfiguration = new EndpointConfiguration("ChangeMessageIdentity.Phase1"); -endpointConfiguration.UseSerialization(); -endpointConfiguration.UseTransport(new LearningTransport()); - -builder.UseNServiceBus(endpointConfiguration); -var host = builder.Build(); -await host.StartAsync(); - -var newOrder = new CreateOrderPhase1 -{ - OrderDate = DateTime.Now -}; -var messageSession = host.Services.GetRequiredService(); - -await messageSession.Send("ChangeMessageIdentity.Phase2", newOrder); - -Console.WriteLine("CreateOrderPhase1 Sent"); -Console.WriteLine("Press any key to exit"); -Console.ReadKey(); - -await host.StopAsync(); diff --git a/samples/serializers/change-message-type/Core_10/SamplePhase1/SamplePhase1.csproj b/samples/serializers/change-message-type/Core_10/SamplePhase1/SamplePhase1.csproj deleted file mode 100644 index 5468658e82c..00000000000 --- a/samples/serializers/change-message-type/Core_10/SamplePhase1/SamplePhase1.csproj +++ /dev/null @@ -1,11 +0,0 @@ - - - net10.0 - Exe - 14.0 - - - - - - \ No newline at end of file diff --git a/samples/serializers/change-message-type/Core_10/SamplePhase2/CreateOrderHandler.cs b/samples/serializers/change-message-type/Core_10/SamplePhase2/CreateOrderHandler.cs deleted file mode 100644 index e82c8c147df..00000000000 --- a/samples/serializers/change-message-type/Core_10/SamplePhase2/CreateOrderHandler.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Threading.Tasks; -using NServiceBus; - -public class CreateOrderHandler : - IHandleMessages -{ - public Task Handle(CreateOrderPhase2 message, IMessageHandlerContext context) - { - Console.WriteLine("Phase 2 Order received"); - return Task.CompletedTask; - } -} \ No newline at end of file diff --git a/samples/serializers/change-message-type/Core_10/SamplePhase2/CreateOrderPhase2.cs b/samples/serializers/change-message-type/Core_10/SamplePhase2/CreateOrderPhase2.cs deleted file mode 100644 index 9d9fea7980c..00000000000 --- a/samples/serializers/change-message-type/Core_10/SamplePhase2/CreateOrderPhase2.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; -using NServiceBus; - -public class CreateOrderPhase2 : - IMessage -{ - public DateTime OrderDate { get; set; } -} \ No newline at end of file diff --git a/samples/serializers/change-message-type/Core_10/SamplePhase2/MessageIdentityMutator.cs b/samples/serializers/change-message-type/Core_10/SamplePhase2/MessageIdentityMutator.cs deleted file mode 100644 index a1d33eee002..00000000000 --- a/samples/serializers/change-message-type/Core_10/SamplePhase2/MessageIdentityMutator.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Reflection; -using System.Runtime.Loader; -using System.Threading.Tasks; -using NServiceBus.MessageMutator; - -#region Mutator -class MessageIdentityMutator : - IMutateIncomingTransportMessages -{ - public Task MutateIncoming(MutateIncomingTransportMessageContext context) - { - var headers = context.Headers; - var messageTypeKey = "NServiceBus.EnclosedMessageTypes"; - - if (!headers.TryGetValue(messageTypeKey, out var messageType)) - { - return Task.CompletedTask; - } - - var type = Type.GetType( - typeName: messageType, - assemblyResolver: assemblyName => - { - if (assemblyName.Name == "SamplePhase1") - { - Console.WriteLine("Message received from SamplePhase1 assembly, changing to SamplePhase2 assembly"); - - return AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName("SamplePhase2")); - } - - return AssemblyLoadContext.Default.LoadFromAssemblyName(assemblyName); - }, - typeResolver: (assembly, typeName, ignoreCase) => - { - if (typeName == "CreateOrderPhase1") - { - Console.WriteLine("CreateOrderPhase1 received, changing to CreateOrderPhase2"); - - return typeof(CreateOrderPhase2); - } - - if (assembly != null) - { - return assembly.GetType(typeName); - } - - return Type.GetType(typeName); - }, - throwOnError: true); - - if (type == null) - { - throw new Exception($"Could not determine type: {messageType}"); - } - - headers[messageTypeKey] = type.AssemblyQualifiedName; - - return Task.CompletedTask; - } -} -#endregion diff --git a/samples/serializers/change-message-type/Core_10/SamplePhase2/Program.cs b/samples/serializers/change-message-type/Core_10/SamplePhase2/Program.cs deleted file mode 100644 index 0ac88949f5f..00000000000 --- a/samples/serializers/change-message-type/Core_10/SamplePhase2/Program.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using Microsoft.Extensions.Hosting; -using NServiceBus; -using NServiceBus.MessageMutator; - -Console.Title = "Phase2"; - -var builder = Host.CreateApplicationBuilder(args); - - -var endpointConfiguration = new EndpointConfiguration("ChangeMessageIdentity.Phase2"); -endpointConfiguration.UseSerialization(); -endpointConfiguration.UseTransport(new LearningTransport()); - -#region RegisterMessageMutator - -endpointConfiguration.RegisterMessageMutator(new MessageIdentityMutator()); - -#endregion - -builder.UseNServiceBus(endpointConfiguration); -var host = builder.Build(); -await host.StartAsync(); - -Console.WriteLine("Waiting for orders.."); -Console.WriteLine("Press any key to exit"); -Console.ReadKey(); - -await host.StopAsync(); \ No newline at end of file diff --git a/samples/serializers/change-message-type/Core_10/SamplePhase2/SamplePhase2.csproj b/samples/serializers/change-message-type/Core_10/SamplePhase2/SamplePhase2.csproj deleted file mode 100644 index 5468658e82c..00000000000 --- a/samples/serializers/change-message-type/Core_10/SamplePhase2/SamplePhase2.csproj +++ /dev/null @@ -1,11 +0,0 @@ - - - net10.0 - Exe - 14.0 - - - - - - \ No newline at end of file diff --git a/samples/serializers/change-message-type/Core_10/prerelease.txt b/samples/serializers/change-message-type/Core_10/prerelease.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/samples/serializers/change-message-type/Core_8/ChangeMessageType.sln b/samples/serializers/change-message-type/Core_8/ChangeMessageType.sln deleted file mode 100644 index 4b157d60192..00000000000 --- a/samples/serializers/change-message-type/Core_8/ChangeMessageType.sln +++ /dev/null @@ -1,25 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29728.190 -MinimumVisualStudioVersion = 15.0.26730.12 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SamplePhase1", "SamplePhase1\SamplePhase1.csproj", "{D1B26244-54D6-4199-BAF5-12A544C70039}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SamplePhase2", "SamplePhase2\SamplePhase2.csproj", "{6E6C9C2A-8D9B-41AF-B5E5-1AF5310686E7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D1B26244-54D6-4199-BAF5-12A544C70039}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D1B26244-54D6-4199-BAF5-12A544C70039}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6E6C9C2A-8D9B-41AF-B5E5-1AF5310686E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6E6C9C2A-8D9B-41AF-B5E5-1AF5310686E7}.Debug|Any CPU.Build.0 = Debug|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2BC70049-9912-4526-925B-A1A7C516CC10} - EndGlobalSection -EndGlobal diff --git a/samples/serializers/change-message-type/Core_8/SamplePhase1/CreateOrderPhase1.cs b/samples/serializers/change-message-type/Core_8/SamplePhase1/CreateOrderPhase1.cs deleted file mode 100644 index 00683664b30..00000000000 --- a/samples/serializers/change-message-type/Core_8/SamplePhase1/CreateOrderPhase1.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; -using NServiceBus; - -public class CreateOrderPhase1 : - IMessage -{ - public DateTime OrderDate { get; set; } -} diff --git a/samples/serializers/change-message-type/Core_8/SamplePhase1/Program.cs b/samples/serializers/change-message-type/Core_8/SamplePhase1/Program.cs deleted file mode 100644 index 9c70f59e24b..00000000000 --- a/samples/serializers/change-message-type/Core_8/SamplePhase1/Program.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Threading.Tasks; -using NServiceBus; - -static class Program -{ - static async Task Main() - { - Console.Title = "Phase1"; - - var endpointConfiguration = new EndpointConfiguration("ChangeMessageIdentity.Phase1"); - endpointConfiguration.UseSerialization(); - endpointConfiguration.UseTransport(new LearningTransport()); - - var endpointInstance = await Endpoint.Start(endpointConfiguration); - - var newOrder = new CreateOrderPhase1 - { - OrderDate = DateTime.Now - }; - - await endpointInstance.Send("ChangeMessageIdentity.Phase2", newOrder); - - Console.WriteLine("CreateOrderPhase1 Sent"); - Console.WriteLine("Press any key to exit"); - Console.ReadKey(); - - await endpointInstance.Stop(); - } -} diff --git a/samples/serializers/change-message-type/Core_8/SamplePhase1/SamplePhase1.csproj b/samples/serializers/change-message-type/Core_8/SamplePhase1/SamplePhase1.csproj deleted file mode 100644 index cd288b0a577..00000000000 --- a/samples/serializers/change-message-type/Core_8/SamplePhase1/SamplePhase1.csproj +++ /dev/null @@ -1,10 +0,0 @@ - - - net9.0;net8.0;net48 - Exe - 12.0 - - - - - \ No newline at end of file diff --git a/samples/serializers/change-message-type/Core_8/SamplePhase2/CreateOrderHandler.cs b/samples/serializers/change-message-type/Core_8/SamplePhase2/CreateOrderHandler.cs deleted file mode 100644 index 02ea691f4f0..00000000000 --- a/samples/serializers/change-message-type/Core_8/SamplePhase2/CreateOrderHandler.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Threading.Tasks; -using NServiceBus; -using NServiceBus.Logging; - -public class CreateOrderHandler : - IHandleMessages -{ - public Task Handle(CreateOrderPhase2 message, IMessageHandlerContext context) - { - Console.WriteLine("Phase 2 Order received"); - return Task.CompletedTask; - } -} \ No newline at end of file diff --git a/samples/serializers/change-message-type/Core_8/SamplePhase2/CreateOrderPhase2.cs b/samples/serializers/change-message-type/Core_8/SamplePhase2/CreateOrderPhase2.cs deleted file mode 100644 index 9d9fea7980c..00000000000 --- a/samples/serializers/change-message-type/Core_8/SamplePhase2/CreateOrderPhase2.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; -using NServiceBus; - -public class CreateOrderPhase2 : - IMessage -{ - public DateTime OrderDate { get; set; } -} \ No newline at end of file diff --git a/samples/serializers/change-message-type/Core_8/SamplePhase2/MessageIdentityMutator.cs b/samples/serializers/change-message-type/Core_8/SamplePhase2/MessageIdentityMutator.cs deleted file mode 100644 index 1642c3cc668..00000000000 --- a/samples/serializers/change-message-type/Core_8/SamplePhase2/MessageIdentityMutator.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System; -using System.Reflection; -using System.Threading.Tasks; -using NServiceBus.MessageMutator; - -#region Mutator -class MessageIdentityMutator : - IMutateIncomingTransportMessages -{ - public Task MutateIncoming(MutateIncomingTransportMessageContext context) - { - var headers = context.Headers; - var messageTypeKey = "NServiceBus.EnclosedMessageTypes"; - - if (!headers.TryGetValue(messageTypeKey, out var messageType)) - { - return Task.CompletedTask; - } - - var type = Type.GetType( - typeName: messageType, - assemblyResolver: assemblyName => - { - if (assemblyName.Name == "SamplePhase1") - { - Console.WriteLine("Message received from SamplePhase1 assembly, changing to SamplePhase2 assembly"); - - return Assembly.Load("SamplePhase2"); - } - - return Assembly.Load(assemblyName); - }, - typeResolver: (assembly, typeName, ignoreCase) => - { - if (typeName == "CreateOrderPhase1") - { - Console.WriteLine("CreateOrderPhase1 received, changing to CreateOrderPhase2"); - - return typeof(CreateOrderPhase2); - } - - if (assembly != null) - { - return assembly.GetType(typeName); - } - - return Type.GetType(typeName); - }, - throwOnError: true); - - if (type == null) - { - throw new Exception($"Could not determine type: {messageType}"); - } - - headers[messageTypeKey] = type.AssemblyQualifiedName; - - return Task.CompletedTask; - } -} -#endregion diff --git a/samples/serializers/change-message-type/Core_8/SamplePhase2/Program.cs b/samples/serializers/change-message-type/Core_8/SamplePhase2/Program.cs deleted file mode 100644 index 18e59939c5a..00000000000 --- a/samples/serializers/change-message-type/Core_8/SamplePhase2/Program.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Threading.Tasks; -using NServiceBus; -using NServiceBus.MessageMutator; - -static class Program -{ - static async Task Main() - { - Console.Title = "Phase2"; - - var endpointConfiguration = new EndpointConfiguration("ChangeMessageIdentity.Phase2"); - endpointConfiguration.UseSerialization(); - endpointConfiguration.UseTransport(new LearningTransport()); - - #region RegisterMessageMutator - - endpointConfiguration.RegisterMessageMutator(new MessageIdentityMutator()); - - #endregion - - var endpointInstance = await Endpoint.Start(endpointConfiguration); - - Console.WriteLine("Waiting for orders.."); - Console.WriteLine("Press any key to exit"); - Console.ReadKey(); - - await endpointInstance.Stop(); - } -} diff --git a/samples/serializers/change-message-type/Core_8/SamplePhase2/SamplePhase2.csproj b/samples/serializers/change-message-type/Core_8/SamplePhase2/SamplePhase2.csproj deleted file mode 100644 index a8a5b069e69..00000000000 --- a/samples/serializers/change-message-type/Core_8/SamplePhase2/SamplePhase2.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net9.0;net8.0;net48 - Exe - 12.0 - true - key.snk - - - - - \ No newline at end of file diff --git a/samples/serializers/change-message-type/Core_8/SamplePhase2/key.snk b/samples/serializers/change-message-type/Core_8/SamplePhase2/key.snk deleted file mode 100644 index edeb129eb57..00000000000 Binary files a/samples/serializers/change-message-type/Core_8/SamplePhase2/key.snk and /dev/null differ diff --git a/samples/serializers/change-message-type/Core_9/ChangeMessageType.sln b/samples/serializers/change-message-type/Core_9/ChangeMessageType.sln deleted file mode 100644 index 4b157d60192..00000000000 --- a/samples/serializers/change-message-type/Core_9/ChangeMessageType.sln +++ /dev/null @@ -1,25 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29728.190 -MinimumVisualStudioVersion = 15.0.26730.12 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SamplePhase1", "SamplePhase1\SamplePhase1.csproj", "{D1B26244-54D6-4199-BAF5-12A544C70039}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SamplePhase2", "SamplePhase2\SamplePhase2.csproj", "{6E6C9C2A-8D9B-41AF-B5E5-1AF5310686E7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D1B26244-54D6-4199-BAF5-12A544C70039}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D1B26244-54D6-4199-BAF5-12A544C70039}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6E6C9C2A-8D9B-41AF-B5E5-1AF5310686E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6E6C9C2A-8D9B-41AF-B5E5-1AF5310686E7}.Debug|Any CPU.Build.0 = Debug|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2BC70049-9912-4526-925B-A1A7C516CC10} - EndGlobalSection -EndGlobal diff --git a/samples/serializers/change-message-type/Core_9/SamplePhase1/CreateOrderPhase1.cs b/samples/serializers/change-message-type/Core_9/SamplePhase1/CreateOrderPhase1.cs deleted file mode 100644 index 00683664b30..00000000000 --- a/samples/serializers/change-message-type/Core_9/SamplePhase1/CreateOrderPhase1.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; -using NServiceBus; - -public class CreateOrderPhase1 : - IMessage -{ - public DateTime OrderDate { get; set; } -} diff --git a/samples/serializers/change-message-type/Core_9/SamplePhase1/Program.cs b/samples/serializers/change-message-type/Core_9/SamplePhase1/Program.cs deleted file mode 100644 index 7d93dff3f41..00000000000 --- a/samples/serializers/change-message-type/Core_9/SamplePhase1/Program.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using NServiceBus; - -Console.Title = "Phase1"; - -var builder = Host.CreateApplicationBuilder(args); - -var endpointConfiguration = new EndpointConfiguration("ChangeMessageIdentity.Phase1"); -endpointConfiguration.UseSerialization(); -endpointConfiguration.UseTransport(new LearningTransport()); - -builder.UseNServiceBus(endpointConfiguration); -var host = builder.Build(); -await host.StartAsync(); - -var newOrder = new CreateOrderPhase1 -{ - OrderDate = DateTime.Now -}; -var messageSession = host.Services.GetRequiredService(); - -await messageSession.Send("ChangeMessageIdentity.Phase2", newOrder); - -Console.WriteLine("CreateOrderPhase1 Sent"); -Console.WriteLine("Press any key to exit"); -Console.ReadKey(); - -await host.StopAsync(); diff --git a/samples/serializers/change-message-type/Core_9/SamplePhase1/SamplePhase1.csproj b/samples/serializers/change-message-type/Core_9/SamplePhase1/SamplePhase1.csproj deleted file mode 100644 index 00464dc8693..00000000000 --- a/samples/serializers/change-message-type/Core_9/SamplePhase1/SamplePhase1.csproj +++ /dev/null @@ -1,11 +0,0 @@ - - - net9.0;net8.0 - Exe - 12.0 - - - - - - \ No newline at end of file diff --git a/samples/serializers/change-message-type/Core_9/SamplePhase2/CreateOrderHandler.cs b/samples/serializers/change-message-type/Core_9/SamplePhase2/CreateOrderHandler.cs deleted file mode 100644 index e82c8c147df..00000000000 --- a/samples/serializers/change-message-type/Core_9/SamplePhase2/CreateOrderHandler.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Threading.Tasks; -using NServiceBus; - -public class CreateOrderHandler : - IHandleMessages -{ - public Task Handle(CreateOrderPhase2 message, IMessageHandlerContext context) - { - Console.WriteLine("Phase 2 Order received"); - return Task.CompletedTask; - } -} \ No newline at end of file diff --git a/samples/serializers/change-message-type/Core_9/SamplePhase2/CreateOrderPhase2.cs b/samples/serializers/change-message-type/Core_9/SamplePhase2/CreateOrderPhase2.cs deleted file mode 100644 index 9d9fea7980c..00000000000 --- a/samples/serializers/change-message-type/Core_9/SamplePhase2/CreateOrderPhase2.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; -using NServiceBus; - -public class CreateOrderPhase2 : - IMessage -{ - public DateTime OrderDate { get; set; } -} \ No newline at end of file diff --git a/samples/serializers/change-message-type/Core_9/SamplePhase2/MessageIdentityMutator.cs b/samples/serializers/change-message-type/Core_9/SamplePhase2/MessageIdentityMutator.cs deleted file mode 100644 index a1d33eee002..00000000000 --- a/samples/serializers/change-message-type/Core_9/SamplePhase2/MessageIdentityMutator.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Reflection; -using System.Runtime.Loader; -using System.Threading.Tasks; -using NServiceBus.MessageMutator; - -#region Mutator -class MessageIdentityMutator : - IMutateIncomingTransportMessages -{ - public Task MutateIncoming(MutateIncomingTransportMessageContext context) - { - var headers = context.Headers; - var messageTypeKey = "NServiceBus.EnclosedMessageTypes"; - - if (!headers.TryGetValue(messageTypeKey, out var messageType)) - { - return Task.CompletedTask; - } - - var type = Type.GetType( - typeName: messageType, - assemblyResolver: assemblyName => - { - if (assemblyName.Name == "SamplePhase1") - { - Console.WriteLine("Message received from SamplePhase1 assembly, changing to SamplePhase2 assembly"); - - return AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName("SamplePhase2")); - } - - return AssemblyLoadContext.Default.LoadFromAssemblyName(assemblyName); - }, - typeResolver: (assembly, typeName, ignoreCase) => - { - if (typeName == "CreateOrderPhase1") - { - Console.WriteLine("CreateOrderPhase1 received, changing to CreateOrderPhase2"); - - return typeof(CreateOrderPhase2); - } - - if (assembly != null) - { - return assembly.GetType(typeName); - } - - return Type.GetType(typeName); - }, - throwOnError: true); - - if (type == null) - { - throw new Exception($"Could not determine type: {messageType}"); - } - - headers[messageTypeKey] = type.AssemblyQualifiedName; - - return Task.CompletedTask; - } -} -#endregion diff --git a/samples/serializers/change-message-type/Core_9/SamplePhase2/Program.cs b/samples/serializers/change-message-type/Core_9/SamplePhase2/Program.cs deleted file mode 100644 index 0ac88949f5f..00000000000 --- a/samples/serializers/change-message-type/Core_9/SamplePhase2/Program.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using Microsoft.Extensions.Hosting; -using NServiceBus; -using NServiceBus.MessageMutator; - -Console.Title = "Phase2"; - -var builder = Host.CreateApplicationBuilder(args); - - -var endpointConfiguration = new EndpointConfiguration("ChangeMessageIdentity.Phase2"); -endpointConfiguration.UseSerialization(); -endpointConfiguration.UseTransport(new LearningTransport()); - -#region RegisterMessageMutator - -endpointConfiguration.RegisterMessageMutator(new MessageIdentityMutator()); - -#endregion - -builder.UseNServiceBus(endpointConfiguration); -var host = builder.Build(); -await host.StartAsync(); - -Console.WriteLine("Waiting for orders.."); -Console.WriteLine("Press any key to exit"); -Console.ReadKey(); - -await host.StopAsync(); \ No newline at end of file diff --git a/samples/serializers/change-message-type/Core_9/SamplePhase2/SamplePhase2.csproj b/samples/serializers/change-message-type/Core_9/SamplePhase2/SamplePhase2.csproj deleted file mode 100644 index 6645e926eac..00000000000 --- a/samples/serializers/change-message-type/Core_9/SamplePhase2/SamplePhase2.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net9.0;net8.0 - Exe - 12.0 - - - - - - - \ No newline at end of file diff --git a/samples/serializers/change-message-type/sample.md b/samples/serializers/change-message-type/sample.md deleted file mode 100644 index 615e8a6177e..00000000000 --- a/samples/serializers/change-message-type/sample.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Change/Move Message Type -reviewed: 2024-01-30 -component: Core -related: -- nservicebus/serialization -- samples/serializers/transitioning-formats -redirects: -- samples/serializers/change-message-identity ---- - -This sample illustrates an approach for changing a message type. This includes any one, or multiple, of the following scenarios: - - * Moving a message type between assemblies. - * Renaming a message type. - * Renaming the assembly containing the message type. - * Adding, removing or changing the [strong name](https://docs.microsoft.com/en-us/dotnet/framework/app-domains/strong-named-assemblies) of the assembly containing the message type - -> [!NOTE] -> This sample uses 2 "Phase" Endpoint Projects to illustrate the iterations of a single endpoint in one solution. - - -## Scenario - -This sample shows moving a message using multiple of the above mentioned scenarios. - -**Phase 1** - -In the Phase 1 endpoint the message type is: - - * Named `CreateOrderPhase1`. - * Exists in an assembly named `SamplePhase1`. - * Exists in an assembly that is not strong named. - - -**Phase 2** - -In the Phase 2 endpoint the message type is: - - * Named `CreateOrderPhase2`. - * Exists in an assembly named `SamplePhase2`. - * Exists in an assembly that is strong named. - - -## Mutation - -This change is achieved via the use of a [IMutateIncomingTransportMessages](/nservicebus/pipeline/message-mutators.md?version=core_7#transport-messages-mutators-imutateincomingtransportmessages). - -The mutator is registered at endpoint startup: - -snippet: RegisterMessageMutator - - -The mutator then replaces the [NServiceBus.EnclosedMessageTypes header](/nservicebus/messaging/headers.md#serialization-headers-nservicebus-enclosedmessagetypes) via the use of [Type.GetType(typeName, assemblyResolver, typeResolver)](https://msdn.microsoft.com/en-us/library/ee332932.aspx) API. - -snippet: Mutator - - -## Running the sample - -When the sample is run both endpoints will startup. The Phase1 endpoint will send a `CreateOrderPhase1` message to Phase2. Phase2 will then mutate the message into a `CreateOrderPhase2` and handle the message.