Referans olarak eklendiğinde sürekli programla beraber kendisinin DLL dosyalarını taşımak boyut olarak dezavantaj gibi geldiğinden yapmıştım ben de. Şöyle bir örnek vereyim eğer yeniden WebRequest kullanmayı isterseniz şu şekilde nodeları almayı deneyebilirsiniz:
Bu kodu siparişler ile ilgili bir metodda kullanmıştım.
// Post metodu kendi yazdığım bir metod sadece xml ve soap action adı verip post ediyor
// geriye xml dönüyor
var responseXmlDocument = Post(orderXml, $"{_host}/SetOrder");
// Xml içerisinde olan gerekli namespace'leri eklediğim alan
XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(responseXmlDocument.NameTable);
xmlNamespaceManager.AddNamespace("soap", "http://www.w3.org/2003/05/soap-envelope");
// Body içerisindeki nodeları almak için ilk body'i seçiyorum
var xmlNode = responseXmlDocument.SelectSingleNode("/soap:Envelope/soap:Body", xmlNamespaceManager);
// Burada dönen mesajı vs seçip dönüyorum
return new OrderResultInfo
{
ResultCode = xmlNode["SetOrderResponse"]["SetOrderResult"]["OrderResultInfo"]["ResultCode"].InnerText,
ResultMessage = xmlNode["SetOrderResponse"]["SetOrderResult"]["OrderResultInfo"]["ResultMessage"].InnerText
};Çok amatörce bir kodmuş gibi durabilir ama sadece örnek için yazdım umarım kafanızda bir şey canlanmıştır.