WP で byte[] 配列を XDocument に変換しようとしています。次のコードがあります
private void btnDownload_Click(object sender, RoutedEventArgs e)
{
svc.DownloadFileCompleted += new EventHandler<DownloadFileCompletedEventArgs>(svc_DownloadFileCompleted);
svc.DownloadFileAsync("XMLFile1.xml");
}
void svc_DownloadFileCompleted(object sender, DownloadFileCompletedEventArgs e)
{
byte[] bytes = e.Result;
//string responseText = Encoding.UTF8.GetString(bytes,0,2048); // ASCII assumed
//XDocument respnseXml = XDocument.Load(responseText);
bytes = NullRemover(bytes);
using (MemoryStream stream = new MemoryStream(bytes))
{
XDocument document = XDocument.Load(stream);
}
}
private byte[] NullRemover(byte[] DataStream)
{
int i;
byte[] temp = new byte[DataStream.Length];
for (i = 0; i < DataStream.Length - 1; i++)
{
if (DataStream[i] == 0x00) break;
temp[i] = DataStream[i];
}
byte[] NullLessDataStream = new byte[i];
for (i = 0; i < NullLessDataStream.Length; i++)
{
NullLessDataStream[i] = temp[i];
}
return NullLessDataStream;
}
ファイルをダウンロードする Web サービスを作成しました。私のコードは正常に動作します。byte[] を XDocument オブジェクトに変換します。この方法が正しいかどうかはわかりません。なぜMemoryStreamを使用する必要があるのですか? byte[]をXDocumentに変換する正しい方法はありますか? または、変換する別の方法はありますか?