gpt4 book ai didi

C# Azure : How to read body from Microsoft. Azure.ServiceBus.Message?

转载 作者:行者123 更新时间:2023-12-04 15:36:22 25 4
gpt4 key购买 nike

我在使用 Microsoft.Azure.ServiceBus.Message 类时遇到问题。我想创建一个包含有效负载对象的消息对象,然后从中读回该对象。在我当前的示例中,我什至没有通过真正的 Azure 总线发送消息;我只是在内存中创建它,然后尝试读取它。

我无法弄清楚我应该将消息正文读取为什么类型。我尝试过 byte[]string 和原始对象类型。在我的所有情况下,我都会收到 XmlException:“输入源格式不正确”。

有人可以告诉我在编码或解码消息时我做错了什么吗?

    [DataContract]
public class Thingy
{
[DataMember]
public string Doodad { get; set; }
}

private static Message CreateMessage()
{
var entityMessage = new Thingy {Doodad = "foobar"};
var serializedMessageBody = JsonConvert.SerializeObject(entityMessage);
var contentType = typeof(Thingy).AssemblyQualifiedName;
var bytes = Encoding.UTF8.GetBytes(serializedMessageBody);
var message = new Message(bytes) {ContentType = contentType};
return message;
}

[Test]
public void ReadMessageBytes()
{
var message = CreateMessage();
var body = message.GetBody<byte[]>();
Console.WriteLine(body);
}

[Test]
public void ReadMessageString()
{
var message = CreateMessage();
var body = message.GetBody<string>();
Console.WriteLine(body);
}

[Test]
public void ReadMessageThingy()
{
var message = CreateMessage();
var body = message.GetBody<Thingy>();
Console.WriteLine(body);
}

最佳答案

我发现这有效:

    [Test]
public void ReadMessageProperly()
{
var message = CreateMessage();
var body = message.Body;
var text = Encoding.UTF8.GetString(body);
var thingy = JsonConvert.DeserializeObject<Thingy>(text);
Assert.IsInstanceOf<Thingy>(thingy);
Assert.AreEqual("foobar", thingy.Doodad);
}

关于C# Azure : How to read body from Microsoft. Azure.ServiceBus.Message?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59624147/

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