MemoryStream
次のようにファイルに書き込む XML を含む があります 。
var xml = XElement.Load(data.Content); // data.Content is of type `Stream`
var contentElement = new XElement("Content", xml);
var information = new XElement("TestInformation",
new XAttribute("Name", data.Descriptor.Name),
new XAttribute("Description", data.Descriptor.Description),
new XAttribute("Owner", data.Descriptor.Owner),
contentElement);
(data
は内部型です -- (コンテンツと呼ばれる) とメタデータを含む記述子をDataObject
含みます)。Stream
後で、次のようにこのファイルから読み取ろうとします。
var returnValue = new DataObject();
var xElement = XElement.Load(fullPath);//the file path
returnValue.Descriptor = new Descriptor
{
Name = xElement.Attribute("Name").Value,
Description = xElement.Attribute("Description").Value,
Owner = xElement.Attribute("Owner").Value
};
returnValue.Content = GetContent(xElement.Element("Content"));
GetContent メソッド:
private Stream GetContent(XElement element)
{
var testElement = element.Elements().First();
var contentStream = new MemoryStream();
var streamWriter = new StreamWriter(contentStream);
streamWriter.Write(testElement);
contentStream.Position = 0;
return contentStream;
}
ストリームを必要な内部型として読み取ろうとするSerializationException
と、一部の要素が閉じられていないというメッセージが表示されますが、実際にはそうではありません - a を使用しStreamReader
てこのストリームを読み取ると、すべてのデータが含まれていません。で見たものXElement
です。ここで何が間違っていますか?