Come si converte uno XmlNode
in XmlNode
in C#? Devo inviare l'intero oggetto XmlDocument
come parametro di input a un servizio Web .NET.Converti oggetto XmlDocument in un oggetto XmlNode - C#?
6
A
risposta
7
Un XmlDocument è un XmlNode, quindi è sufficiente passare l'oggetto documento.
Oppure è possibile inviare il DocumentElement o qualsiasi nodo restituito da una query XPath.
XmlDocument doc = null;
XmlNode node = doc;
XmlNode node = doc.DocumentElement;
XmlNode node = doc.SelectSingleNode("/foo/bar");
No fusione o la conversione è necessario a meno che non è necessario disambiguare XmlNode da XmlDocument per un metodo con overload per entrambi i tipi di parametri. In tal caso, utilizzare uno degli operatori di cast o as
.
3
Se è necessario fare riferimento ad esso in modo esplicito come un uso XmlNode "come":
XmlDocument doc = ...
XmlNode node = doc as XmlNode;
0
un XmlDocument è derivato da XmlNode, ma si potrebbe anche inviare il XmlDocument.DocumentElement che è un XmlElement ma in ultima analisi deriva da XmlNode. Potrebbe essere necessario eseguire il check in XmlDocument.DocumentElement == null.
Un tipo complesso definito in .NET Framework sembra una scelta sbagliata per un parametro per un servizio Web. Se il servizio è tuo, potresti cercare di cambiare il tipo in stringa. Ciò consentirebbe anche di chiamarlo da altre lingue/piattaforme con relativa facilità. – TrueWill
@TrueWill - Il servizio non è mio, è un terzo servizio di vendita di patty. –