I am a bit stuck with this issue. When running XDocument.Load
with a file from disk, the call completes within milliseconds. But if we make the call using the same data but from a XMLNodeReader
, it takes upwards of 6 minutes. Any help would be appreciated. Thanks!
See the code below:
XDcoument.Load from File
private static string SerializeData(Data data)
{
var serializer = new XmlSerializer(typeof(Data));
var dataXmlDocument = new XmlDocument();
using (XmlWriter writer = dataXmlDocument.CreateNavigator().AppendChild())
{
serializer.Serialize(writer, data);
}
dataXmlDocument.Save("C:/test.xml");
var dataXDocument = new XDocument();
dataXDocument = XDocument.Load(File.OpenRead("C:\test.xml");
}
XDocument.Load from XMLNodeReader
private static string SerializeData(Data data)
{
var serializer = new XmlSerializer(typeof(Data));
var dataXmlDocument = new XmlDocument();
using (XmlWriter writer = dataXmlDocument.CreateNavigator().AppendChild())
{
serializer.Serialize(writer, data);
}
var dataXDocument = new XDocument();
using (var nodeReader = new XmlNodeReader(dataXmlDocument))
{
nodeReader.MoveToContent();
dataXDocument = XDocument.Load(nodeReader);
}
}