c# windows azure -排队实体,模型或POCO
本文关键字:模型 POCO 实体 排队 windows azure | 更新日期: 2023-09-27 18:15:34
我的程序中有这个
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; }
}
我怎么能有一个模型被推到队列?
Azure Queue存储上的传输单元是CloudQueueMessage
云消息以序列化字符串(例如xml
或json
)或序列化二进制表示(byte[]
)携带消息的有效载荷(即您的对象或实体图)。您有以下序列化选项:
- Json,例如Newtonsoft JsonSerializer
- 一个XmlSerializer
- Google Protobuf for a compact binary format
有效负载序列化格式的选择将取决于您需要的数据的"紧凑性"级别,以及下游客户端将使用的技术所需的兼容性。
除非带宽和反序列化时间是绝对关键的,否则我建议使用Json
作为一般的起点,因为它被广泛采用,并且易于读取序列化的消息有效负载。
然后使用AddMessageAsync等方法发布消息,并由GetMessageAsync使用
对于发布,你需要序列化你的类/实体图,有CloudQueueMessage构造函数重载,它接受代表消息负载的byte[]
或string
参数。
CloudQueueMessage(byte[])
CloudQueueMessage(string)
同样,使用者需要对接收到的有效负载进行反序列化,可以通过以下两种方式检索:
- AsBytes
- AsString结尾
也看到:XmlSerialization示例:在Azure队列存储中传递对象消息
如果你在每个应用程序中读取和编写相同的模型,那么你可以共享序列化/反序列化函数来将你的对象转换为字符串或字节[]。