Skip to content

Commit bb212f0

Browse files
authored
Merge pull request #7479 from Particular/serializers-xml-sample-update
Serializers xml sample update
2 parents aa914c7 + 4bd1d1d commit bb212f0

File tree

10 files changed

+186
-48
lines changed

10 files changed

+186
-48
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using NServiceBus;
4+
5+
6+
public class CreateOrder :
7+
IMessage
8+
{
9+
public int OrderId { get; set; }
10+
public DateTime Date { get; set; }
11+
public int CustomerId { get; set; }
12+
public List<OrderItem> OrderItems { get; set; }
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using System.Threading.Tasks;
2+
using Microsoft.Extensions.Logging;
3+
using NServiceBus;
4+
5+
public class CreateOrderHandler(ILogger<CreateOrderHandler> logger) :
6+
IHandleMessages<CreateOrder>
7+
{
8+
public Task Handle(CreateOrder message, IMessageHandlerContext context)
9+
{
10+
logger.LogInformation("Order received");
11+
return Task.CompletedTask;
12+
}
13+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using System.Text;
2+
using System.Threading.Tasks;
3+
using Microsoft.Extensions.Logging;
4+
using NServiceBus.MessageMutator;
5+
6+
#region mutator
7+
public class MessageBodyWriter(ILogger<MessageBodyWriter> logger) :
8+
IMutateIncomingTransportMessages
9+
{
10+
public Task MutateIncoming(MutateIncomingTransportMessageContext context)
11+
{
12+
var bodyAsString = Encoding.UTF8.GetString(context.Body.ToArray());
13+
14+
logger.LogInformation("Serialized Message Body:");
15+
logger.LogInformation(bodyAsString);
16+
17+
return Task.CompletedTask;
18+
}
19+
}
20+
#endregion
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+

2+
public class OrderItem
3+
{
4+
public int ItemId { get; set; }
5+
public int Quantity { get; set; }
6+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using Microsoft.Extensions.DependencyInjection;
4+
using Microsoft.Extensions.Hosting;
5+
using NServiceBus;
6+
using NServiceBus.MessageMutator;
7+
8+
9+
Console.Title = "Xml";
10+
11+
var builder = Host.CreateApplicationBuilder(args);
12+
13+
#region config
14+
var endpointConfiguration = new EndpointConfiguration("Samples.Serialization.Xml");
15+
16+
endpointConfiguration.UseSerialization<XmlSerializer>();
17+
18+
19+
// Then later get it from the service provider when needed
20+
builder.Services.AddSingleton<MessageBodyWriter>();
21+
var serviceProvider = builder.Services.BuildServiceProvider();
22+
var messageBodyWriter = serviceProvider.GetRequiredService<MessageBodyWriter>();
23+
24+
// register the mutator so the the message on the wire is written
25+
endpointConfiguration.RegisterMessageMutator(messageBodyWriter);
26+
27+
#endregion
28+
29+
endpointConfiguration.UseTransport(new LearningTransport());
30+
31+
Console.WriteLine("Press any key, the application is starting");
32+
Console.ReadKey();
33+
Console.WriteLine("Starting...");
34+
35+
builder.UseNServiceBus(endpointConfiguration);
36+
var host = builder.Build();
37+
38+
await host.StartAsync();
39+
40+
var messageSession = host.Services.GetRequiredService<IMessageSession>();
41+
42+
#region message
43+
var message = new CreateOrder
44+
{
45+
OrderId = 9,
46+
Date = DateTime.Now,
47+
CustomerId = 12,
48+
OrderItems = new List<OrderItem>
49+
{
50+
new OrderItem
51+
{
52+
ItemId = 6,
53+
Quantity = 2
54+
},
55+
new OrderItem
56+
{
57+
ItemId = 5,
58+
Quantity = 4
59+
},
60+
}
61+
};
62+
63+
await messageSession.SendLocal(message);
64+
65+
#endregion
66+
67+
Console.WriteLine("Order Sent");
68+
69+
await host.StopAsync();
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<TargetFramework>net10.0</TargetFramework>
4+
<OutputType>Exe</OutputType>
5+
<LangVersion>preview</LangVersion>
6+
</PropertyGroup>
7+
<ItemGroup>
8+
<PackageReference Include="NServiceBus" Version="10.0.0-alpha.1" />
9+
<PackageReference Include="NServiceBus.Extensions.Hosting" Version="4.0.0-alpha.1" />
10+
</ItemGroup>
11+
</Project>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 16
4+
VisualStudioVersion = 16.0.29728.190
5+
MinimumVisualStudioVersion = 15.0.26730.12
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sample", "Sample\Sample.csproj", "{6E6C9C2A-8D9B-41AF-B5E5-1AF5310686E7}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
EndGlobalSection
12+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
13+
{6E6C9C2A-8D9B-41AF-B5E5-1AF5310686E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
14+
{6E6C9C2A-8D9B-41AF-B5E5-1AF5310686E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
15+
EndGlobalSection
16+
GlobalSection(SolutionProperties) = preSolution
17+
HideSolutionNode = FALSE
18+
EndGlobalSection
19+
EndGlobal

samples/serializers/xml/Core_10/prerelease.txt

Whitespace-only changes.

samples/serializers/xml/Core_9/Sample/InputService.cs

Lines changed: 0 additions & 45 deletions
This file was deleted.

samples/serializers/xml/Core_9/Sample/Program.cs

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,11 @@
44
using Microsoft.Extensions.Hosting;
55
using NServiceBus;
66
using NServiceBus.MessageMutator;
7-
using Sample;
87

98

109
Console.Title = "Xml";
1110

1211
var builder = Host.CreateApplicationBuilder(args);
13-
builder.Services.AddHostedService<InputLoopService>();
1412

1513
#region config
1614
var endpointConfiguration = new EndpointConfiguration("Samples.Serialization.Xml");
@@ -35,4 +33,38 @@
3533
Console.WriteLine("Starting...");
3634

3735
builder.UseNServiceBus(endpointConfiguration);
38-
await builder.Build().RunAsync();
36+
37+
var host = builder.Build();
38+
39+
await host.StartAsync();
40+
41+
var messageSession = host.Services.GetRequiredService<IMessageSession>();
42+
43+
#region message
44+
var message = new CreateOrder
45+
{
46+
OrderId = 9,
47+
Date = DateTime.Now,
48+
CustomerId = 12,
49+
OrderItems = new List<OrderItem>
50+
{
51+
new OrderItem
52+
{
53+
ItemId = 6,
54+
Quantity = 2
55+
},
56+
new OrderItem
57+
{
58+
ItemId = 5,
59+
Quantity = 4
60+
},
61+
}
62+
};
63+
64+
await messageSession.SendLocal(message);
65+
66+
#endregion
67+
68+
Console.WriteLine("Order Sent");
69+
70+
await host.StopAsync();

0 commit comments

Comments
 (0)