2013-05-27 13 views
1

我在我的程序都這樣了,C#的Windows Azure - 排隊的實體,模型或POCO

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

怎樣纔可以有一個模型推到隊列中?

回答

0

如果你讀,寫你的模型中的每個應用程序一樣,那麼你可以分享序列化/反序列化功能,以您的對象轉換爲字符串或字節[]。

1

在Azure隊列存儲器傳輸的單位是CloudQueueMessage

雲文中攜帶消息(即對象或實體圖形)的有效載荷中的序列化的字符串(例如xmljson)或串行化的二進制表示( byte[])。您有序列化選項,例如:

有效載荷的序列化格式的選擇將取決於你需要的數據什麼水平「緊湊」的,並通過技術所需的兼容性是下游客戶將使用。

除非帶寬和反序列化時間是絕對關鍵的,否則我建議使用Json作爲一個普遍的出發點,因爲它被廣泛採用,並且很容易讀取序列化的消息有效載荷。

消息然後用諸如AddMessageAsync方法出版和GetMessageAsync

消耗的發佈,你將需要序列化你的類/實體圖有CloudQueueMessage constructor overloads其接受表示消息有效載荷byte[]string參數。

CloudQueueMessage(byte[]) 
CloudQueueMessage(string) 

類似地,消費者將需要反序列化接收到的有效載荷,其可以通過檢索任一:

另見: XmlSerialization例如:Passing object messages in Azure Queue Storage