gpt4 book ai didi

c# - 如何从.net core应用程序向服务总线主题发送消息

转载 作者:太空宇宙 更新时间:2023-11-03 21:02:45 24 4
gpt4 key购买 nike

我使用.net core应用程序创建了API,该应用程序用于将一组属性发送到SQL DB,并且还应将消息的一个副本发送到azure服务总线主题。截至目前.net core 不支持服务总线。请分享您的想法。如何使用 .net core 应用程序将消息发送到服务总线主题?

public class CenterConfigurationsDetails
{

public Guid Id { get; set; } = Guid.NewGuid();

public Guid? CenterReferenceId { get; set; } = Guid.NewGuid();

public int? NoOfClassRooms { get; set; }

public int? OtherSpaces { get; set; }

public int? NoOfStudentsPerEncounter { get; set; }

public int? NoOfStudentsPerComplimentaryClass { get; set; }
}

// POST api/centers/configurations
[HttpPost]
public IActionResult Post([FromBody]CenterConfigurationsDetails centerConfigurationsDetails)
{
if (centerConfigurationsDetails == null)
{
return BadRequest();
}
if (_centerConfigurationModelCustomValidator.IsValid(centerConfigurationsDetails, ModelState))
{
var result = _centerConfigurationService.CreateCenterConfiguration(centerConfigurationsDetails);

return Created($"{Request.Scheme}://{Request.Host}{Request.Path}", result);
}
var messages = ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage).ToList();
return BadRequest(messages);
}

最佳答案

使用.Net Core发送消息非常容易。有一个专用的 nuget 包:Microsoft.Azure.ServiceBus

示例代码如下所示:

public class MessageSender
{
private const string ServiceBusConnectionString = "Endpoint=sb://bialecki.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=[privateKey]";

public async Task Send()
{
try
{
var productRating = new ProductRatingUpdateMessage { ProductId = 123, RatingSum = 23 };
var message = new Message(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(productRating)));

var topicClient = new TopicClient(ServiceBusConnectionString, "productRatingUpdates");
await topicClient.SendAsync(message);
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
}

有关完整示例,您可以查看我的博客文章:http://www.michalbialecki.com/2017/12/21/sending-a-azure-service-bus-message-in-asp-net-core/

还有一个关于接收消息的:http://www.michalbialecki.com/2018/02/28/receiving-messages-azure-service-bus-net-core/

关于c# - 如何从.net core应用程序向服务总线主题发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43704198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com