Hop*_*ope 7 .net c# serialization azure azure-storage
我想将.NET对象存储到Azure Blob存储中.
目前我使用TextWriter(episodeList是我要序列化的对象)将其序列化为XML文件:
XmlAttributeOverrides overrides = new XmlAttributeOverrides();
XmlAttributes Xmlattr = new XmlAttributes();
Xmlattr.XmlRoot = new XmlRootAttribute("EPISODES");
overrides.Add(typeof(List<EpisodeData>), Xmlattr);
XmlSerializer serializer = new XmlSerializer(typeof(List<EpisodeData>), overrides);
TextWriter textWriter = new StreamWriter(@"C:\movie.xml");
serializer.Serialize(textWriter, episodeList);
textWriter.Close();
Run Code Online (Sandbox Code Playgroud)
然后将文件上传到Blob存储:
CloudBlobClient blobStorage = createOrGetReferenceOfBlobStorage(folderName);
string uniqueBlobName = string.Format("{0}/{1}", folderName, fileName);
CloudBlockBlob blob = clouBblockBlobPropertySetting(blobStorage, uniqueBlobName, ".txt");
using (StreamWriter writer = new StreamWriter(blob.OpenWrite()))
{
writer.Write(content);
}
Run Code Online (Sandbox Code Playgroud)
有可能以某种方式跳过临时文件,以便将XML直接上载到Azure Blob存储中吗?
您可以执行以下操作.创建一个MemoryStream实例并用于XmlSerializer.Serialize(Stream stream)将对象序列化到内存流中,然后将"回放"流开始使用Seek().然后调用CloudBlob.UploadFromStream()将流内容上传到blob.