1

我的程序中有这个,

string message = string.Empty;                
queue.AddMessage(new CloudQueueMessage(message));

我可以对字符串进行排队,它可以工作,但是如果我有自己的模型怎么办,如何将其推送到我的队列中?有没有办法将此模型转换为字节?因为我看到我也可以推送字节。

通过模型,我的意思是这样的:

public class Region
{
    public string countryCode { get; set; }
    public string countryName { get; set; }
    public string region { get; set; }
}

如何将模型推送到队列中?

4

2 回答 2

1

Azure 队列存储上的传输单位是CloudQueueMessage

xml云消息以序列化字符串(例如or json)或序列化二进制表示( )的形式携带消息的有效负载(即您的对象或实体图byte[])。您有序列化选项,例如:

有效负载序列化格式的选择将取决于您需要的数据“紧凑性”级别,以及下游客户端将使用的技术所需的兼容性。

除非带宽和反序列化时间绝对关键,否则我建议将Json其用作一般起点,因为它被广泛采用,并且很容易读取序列化的消息有效负载。

然后使用AddMessageAsync等方法发布消息并由GetMessageAsync使用

对于发布,您需要序列化您的类/实体图,有CloudQueueMessage 构造函数重载,它们接受byte[]string表示消息有效负载的参数。

CloudQueueMessage(byte[])
CloudQueueMessage(string)

同样,消费者需要反序列化接收到的有效负载,可以通过以下任一方式检索:

另请参阅:XmlSerialization 示例:在 Azure 队列存储中传递对象消息

于 2013-05-27T06:30:40.537 回答
0

如果您在每个应用程序中读取和写入相同的模型,那么您可以共享序列化/反序列化函数来将您的对象转换为字符串或字节 []。

于 2013-05-27T06:17:14.820 回答