2015-11-11 50 views
2

我正在爲我擁有的Web API Web角色實現Azure角色緩存。我希望能夠緩存不經常更改的特定Blob的BlobReference。這裏是我用來獲取BlobReference的代碼。我得到的項目是zip文件是類型CloudBlockBlob的序列化用於緩存的CloudBlockBlob

public ICloudBlob GetBlob(string containerName, string blobName) 
{ 
    CloudBlobContainer container = GetBlockBlobContainer(containerName); 
    ICloudBlob blob = container.GetBlobReferenceFromServer(blobName); 
    return blob; 
} 

然而,當我試圖把高速緩存中的項目,它說,CloudBlockBlob是不可序列。由於我無法將該類修改爲可序列化,是否有解決此問題的方法?如果沒有,那麼緩存blob元數據的首選方法是什麼?

+0

@usr我想盡可能多的,只是想確保沒有一個最佳實踐的實施,但創建一個POCO類很容易。謝謝 –

回答

0

將你需要的東西拷貝到DTO中。將複雜對象放入AppDomain全局數據結構通常不是一個好的模式。你永遠不知道它們背後有什麼樣的對象圖,也不知道它們是否是線程安全的。如果這些課程來自第三方圖書館,您無法知道里面的內容。你需要自己控制對象。

長時間運行的進程中的全局狀態是非常關鍵的資源。如果你搞砸了應用程序可能不可用,直到手動過程重新啓動,這是災難性的。