7

.NET オブジェクトを Azure Blob Storage に格納したいと考えています。

現在、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();

次に、ファイルを Blob Storage にアップロードします。

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

XML が Azure Blob Storage に直接アップロードされるように一時ファイルをスキップすることはできますか?

4

1 に答える 1

7

次のことができます。MemoryStreamインスタンスを作成し、を使用XmlSerializer.Serialize(Stream stream)してオブジェクトをメモリストリームにシリアル化し、ストリームを「巻き戻し」て使用を開始しSeek()ます。次に、を呼び出しCloudBlob.UploadFromStream()てストリームコンテンツをblobにアップロードします。

于 2012-06-15T06:15:31.507 に答える