Как я преобразовываю XmlDocument
к a XmlNode
в C#? Я должен отправить все XmlDocument
возразите против как входной параметр к веб-сервису.NET.
XmlDocument - это XmlNode, поэтому вы можете просто передать объект документа.
Или вы можете отправить его DocumentElement или любой узел, возвращенный из запроса XPath.
XmlDocument doc = null;
XmlNode node = doc;
XmlNode node = doc.DocumentElement;
XmlNode node = doc.SelectSingleNode("/foo/bar");
Приведение или преобразование не требуется, если вам не нужно устранять неоднозначность XmlNode из XmlDocument для метода с перегрузками для обоих типов параметров. В этом случае используйте оператор приведения или как
.
Если вам нужно явно ссылаться на него как на XmlNode, используйте "as":
XmlDocument doc = ...
XmlNode node = doc as XmlNode;
XmlDocument является производным от XmlNode, но вы также можете отправить XmlDocument.DocumentElement, который является XmlElement, но в конечном счете производным от XmlNode. Может потребоваться проверка XmlDocument.DocumentElement == null.