// Member variables
private static XmlDocument _document;
private static XDocument _xdoc;
private static object _lock = new object();
/// <summary>
/// read xml file "ExtendedSearchService.xml" from resources and return it as XDocument
/// </summary>
public static XDocument XDoc
{
get
{
lock (_lock)
{
if (_xdoc == null)
{
_xdoc = XDocument.Parse(Properties.Resources.ExtendedSearchService);
}
}
return _xdoc;
}
}
/// <summary>
/// helpmethod to convert XDocument to XmlDocument
/// </summary>
/// <param name="xdoc"></param>
/// <returns></returns>
public static XmlDocument ToXmlDocument(XDocument xdoc)
{
var xmlDoc = new XmlDocument();
xmlDoc.Load(xdoc.CreateReader());
return xmlDoc;
}
Using it:
var test = ToXmlDocument(XDoc);
Reverse direction:
/// <summary>
/// Converts an XmlDocument to an XDocument.
/// </summary>
/// <param name="xmldoc">The XmlDocument to convert.</param>
/// <returns>The equivalent XDocument.</returns>
public static XDocument ToXDocument(this XmlDocument xmldoc)
{
return XDocument.Load(xmldoc.CreateNavigator().ReadSubtree());
}
=======================================================================