我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);
}