2012-06-14 18 views
5

Bir .NET nesnesini Azure Blob Storage içine kaydetmek istiyorum.Geçici bir dosya kullanmadan bir .NET nesnesini Azure Blob Storage içine nasıl serileştiririm?

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

ve sonra Blob Depolama içine dosya yüklemek:

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

mümkün mü

Şu anda (episodeList nesne ı tefrika istiyorum olduğunu) TextWriter kullanarak bir XML dosyası haline serialize Bir şekilde geçici dosyayı atlayın, böylece XML doğrudan Azure Blob Storage'a yüklenir mi?

+0

Tamam, sorun nedir? – sharptooth

+0

C: \ movie.xml – Hope

cevap

6

şunları yapmanız başladı. Bir MemoryStream örneği oluşturma ve sonra başına akışı Seek() kullanarak "geri sarma", bellek akışı içine nesne seri XmlSerializer.Serialize(Stream stream) kullanın. Ardından, akış içeriğini bloğa yüklemek için CloudBlob.UploadFromStream() numaralı telefonu arayın.

+0

Bloob yolunu belirtmek mümkün mü? – Hope

İlgili konular