ServiceFabric 与本地 WPF 应用程序通信
ServiceFabric communication with local WPF App
有什么方法可以将 Service Fabric Stateless 服务(在本地)连接到我的本地 WPF 应用程序?我想处理一些关于无状态服务的数据并向 WPF 应用程序发送更新,例如使用 NServiceBus
是的,您可以为此使用消息队列。
您的无状态服务会创建一条消息并将其放入队列:
static async Task SendMessageAsync()
{
// create a Service Bus client
await using (ServiceBusClient client = new ServiceBusClient(connectionString))
{
// create a sender for the queue
ServiceBusSender sender = client.CreateSender(queueName);
// create a message that we can send
ServiceBusMessage message = new ServiceBusMessage("Hello world!");
// send the message
await sender.SendMessageAsync(message);
Console.WriteLine($"Sent a single message to the queue: {queueName}");
}
}
WPF 应用程序将接收该消息并对其进行处理:
// handle received messages
static async Task MessageHandler(ProcessMessageEventArgs args)
{
string body = args.Message.Body.ToString();
// update the ViewModel here
// complete the message. messages is deleted from the queue.
await args.CompleteMessageAsync(args.Message);
}
我建议发送一个序列化对象,而不是发送一个简单的字符串,例如使用 JSON.
有什么方法可以将 Service Fabric Stateless 服务(在本地)连接到我的本地 WPF 应用程序?我想处理一些关于无状态服务的数据并向 WPF 应用程序发送更新,例如使用 NServiceBus
是的,您可以为此使用消息队列。
您的无状态服务会创建一条消息并将其放入队列:
static async Task SendMessageAsync()
{
// create a Service Bus client
await using (ServiceBusClient client = new ServiceBusClient(connectionString))
{
// create a sender for the queue
ServiceBusSender sender = client.CreateSender(queueName);
// create a message that we can send
ServiceBusMessage message = new ServiceBusMessage("Hello world!");
// send the message
await sender.SendMessageAsync(message);
Console.WriteLine($"Sent a single message to the queue: {queueName}");
}
}
WPF 应用程序将接收该消息并对其进行处理:
// handle received messages
static async Task MessageHandler(ProcessMessageEventArgs args)
{
string body = args.Message.Body.ToString();
// update the ViewModel here
// complete the message. messages is deleted from the queue.
await args.CompleteMessageAsync(args.Message);
}
我建议发送一个序列化对象,而不是发送一个简单的字符串,例如使用 JSON.