【发布时间】:2023-03-28 16:46:01
【问题描述】:
我正在尝试将 DataTable 序列化为 XML,然后将其上传到 Azure blob 存储。
下面的代码可以工作,但看起来很笨重且内存不足。有一个更好的方法吗?我特别指的是我将一个内存流转储到一个字节数组,然后从中创建一个新的内存流。
var container = blobClient.GetContainerReference("container");
var blockBlob = container.GetBlockBlobReference("blob");
byte[] blobBytes;
using (var writeStream = new MemoryStream())
{
using (var writer = new StreamWriter(writeStream))
{
table.WriteXml(writer, XmlWriteMode.WriteSchema);
}
blobBytes = writeStream.ToArray();
}
using (var readStream = new MemoryStream(blobBytes))
{
blockBlob.UploadFromStream(readStream);
}
【问题讨论】:
-
因为它已经是表数据,您是否考虑过上传到存储帐户中的表?还是您的解决方案要求您使用 XML?
-
@MartynC 它不一定是 XML,但它必须在 blob 存储中,并且它必须很容易反序列化回 DataTable
标签: c# .net azure-blob-storage system.data