序列化CloudBlockBlob以进行缓存

时间:2015-11-11 14:35:30

标签: c# azure azure-storage-blobs azure-in-role-cache

我正在为我拥有的Web API Web角色实现Azure角色内缓存。我希望能够为不经常更改的特定blob缓存BlobReference。这是我用来获取BlobReference的代码。我得到的项目是CloudBlockBlob

类型的zip文件
public ICloudBlob GetBlob(string containerName, string blobName)
{
   CloudBlobContainer container = GetBlockBlobContainer(containerName);
   ICloudBlob blob = container.GetBlobReferenceFromServer(blobName);
   return blob;
}

但是,当我尝试将项目放入Cache时,它表示CloudBlockBlob不可序列化。由于我无法将该类修改为可序列化,因此有解决方法吗?如果不是,那么为不经常更改的blob缓存blob元数据的首选方法是什么?

1 个答案:

答案 0 :(得分:1)

将您需要的内容复制到DTO中。将复杂对象放入appdomain全局数据结构通常不是一个好的模式。你永远不知道它们背后是什么类型的对象图以及它们是否是线程安全的。如果课程来自第三方图书馆,您就无法了解其中的内容。你需要自己控制对象。

长期运行流程中的全局状态是非常关键的资源。如果搞砸了应用程序可能无法使用,直到手动进程重启,这是灾难性的。