序列化 CloudBlockBlob 以进行缓存

Serializing CloudBlockBlob for Caching

我正在为我拥有的 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;
}

然而,当我尝试将项目放入缓存时,它说 CloudBlockBlob 不可序列化。由于我无法将 class 修改为可序列化,是否有解决方法?如果不是,为不经常更改的 blob 缓存 blob 元数据的首选方法是什么?

将您需要的内容复制到 DTO 中。将复杂对象放入 appdomain 全局数据结构中通常不是一个好的模式。你永远不知道它们背后有什么样的对象图,它们是否是线程安全的。如果 类 来自第 3 方库,您将无法知道里面有什么。您需要自己控制对象。

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