Bu makalede, aşağıdaki Microsoft .NET Framework Sınıf Kitaplığı ad alanlarına başvurulmaktadır:
Bu adım adım makalede, .NET uygulamalarında, bir
XmlDocument parametresi olması ya da,
XmlDocument nesneyi döndürmek Web hizmeti yöntemleri çalıştırma için kod yazma açıklamaktadır.
XmlDocument nesneleri için Web hizmeti yöntem parametreleri olarak geçirilen veya Web hizmeti yöntemleri döndürülür, bunlar
XmlNode nesneleri olarak sıralanmış.
XmlDocument ve
XmlNode türü (
XmlDocumentXmlNode ' türetilmiş)
System.XML ad alanı içinde uygulanır.
(Yani bir Web hizmeti yöntemine geçirilir veya bir Web hizmeti yöntemi tarafından döndürülen) bir
XmlNode sıralanmış veri düzenleme
XmlNode türü tarafından kullanıma XmlDocument API kullanmanızı gerektiriyorsa, bir <a0>
XmlDocument</a0> nesnesindeki verilerin yüklemeniz gerekir. Bunu yapmak için aşağıdaki yöntemlerden birini kullanın:
- XmlDocument.LoadXml(XmlNode.OuterXml)
- XmlDocument.ImportNode(XmlNode, true)
Bu makaledeki örneklerde bu yöntemlerinin nasıl kullanılacağını göstermektedir.
- Microsoft Visual Studio. NET'te, oluşturma bir yeni Visual C# .NET, ASP.NET Web Service proje. Bunu yapmak için şu adımları izleyin:
- Dosya menüsünden Yeni ' yi tıklatın ve sonra Project ' i tıklatın.
- Proje türleri listesinde, Visual C# Projects ' ı tıklatın ve sonra şablonları bölmesinde ASP.NET Web Service ' ı tıklatın.
- Konum kutusuna XMLDocService (WebService1 varsayılan adıdır) varsayılan adını yazın.
- Service1.asmx XMLDocService.asmx için oluşturulan varsayılan Web servisinde adını değiştirin.
- Kod görünümüne geçmek için tasarımcı ortamında kod görünümüne geçmek için burayı tıklatın.
- XMLDocument nesneyi döndüren bir yöntem tanımlayın. Hizmetin harekete geçirecek her yöntemi ile bir WebMethod özniteliği bayrak gerekir. Bu özniteliği olmadan hizmet yöntemi geçirecek.
Not Her yöntemin WebMethod ' özniteliği olmalıdır. Bu özniteliği genel Web hizmeti yöntemleri tarafından çağrılan bazı uygulama ayrıntılarını gizlemek için kullanılabilir veya WebService sınıf yerel uygulamalarda kullanılır. Yerel bir uygulamanın herhangi bir genel sınıf kullanabilseniz de, yalnızca WebMethod yöntem, XML Web Uzaktan erişilebilir Hizmetleri. - Aşağıdaki Web hizmeti yöntemleri XMLDocService sınıfına ekleyin:
[WebMethod]
public XmlDocument GetXmlDocument()
{
// Create an XmlDocument object.
XmlDocument xmlDocumentObject = new XmlDocument();
XmlDocumentObject.LoadXml("<book genre=\"novel\" publicationdate=\"1997\" " +
" ISBN=\"1-861001-57-5\">" +
" <title>Pride And Prejudice</title>" +
" <author>" +
" <first-name>Jane</first-name>" +
" <last-name>Austen</last-name>" +
" </author>" +
" <price>24.95</price>" +
"</book>");
// Return the created XmlDocument object.
return( XmlDocumentObject );
}[WebMethod]
public string GetFirstName( XmlNode XmlNodePassed )
{
// Create a new XmLDocument object.
XmlDocument XmlDocumentObject = new XmlDocument();
// Load the XmlNode into the XmlDocument object.
XmlDocumentObject.LoadXml( XmlNodePassed.OuterXml );
// Find the first name of the author.
XmlNodeList XmlNodeListObj = XmlDocumentObject.GetElementsByTagName( "first-name" );
// Return the first name.
return XmlNodeListObj[ 0 ].ChildNodes[ 0 ].Value;
} - Oluştur) menüsünde tıklatın Build Solution Web hizmetini oluşturma.
- XML Web hizmetini sınama XMLDocService.asmx XML Web hizmeti sayfayı açın. Sayfa ana bilgisayar için yerel bilgisayarda ayarlarsanız, http://localhost/XMLDocService/XMLDocService.asmx URL'dir. Microsoft ASP.NET XML Web tanımlayan bir XML Web hizmeti Yardım sayfasını çal??ma zaman? döndürür hizmet. Bu sayfayı, XML Web hizmeti yöntem sınamak için de kullanabilirsiniz.
- Visual Studio. NET'te, Dosya menüsünden Yeni'yi tıklatın ve sonra Project ' i tıklatın.
- Proje türleri listesinde, Visual C# Projects ' ı tıklatın ve şablonları bölmesinde Console Application ' ı tıklatın.
- Yeni uygulamada XMLDocService Web hizmeti için bir başvuru ekleyin.
Bu adım, istemci bilgisayarda bir proxy sınıf oluşturur. Proxy sınıfı oluşturduktan sonra sınıfını esas alan nesneleri oluşturabilirsiniz. Olan nesneye yapılan her yöntem çağrısı, Tekdüzen Kaynak tanımlayıcısına (URI) Web hizmetine bir SOAP isteği geçirilir. - Proje menüsünde Add Web Reference.
- Web Başvurusu Ekle iletişim kutusunda, Adres</a1> metin kutusuna Web servisi URL'SINI yazın ve ENTER tuşuna basın. Web hizmetinin ana bilgisayar için yerel bilgisayarda ayarlarsanız, http://localhost/XMLDocService/XMLDocService.asmx URL'dir.
- Başvuru Ekle ' yi tıklatın. Alternatif olarak, bulma (XMLDocService.vsdisco) dosyasının URL'SINI yazın veya XMLDocService hizmet listeden seçmek için sol bölmedeki Yerel Web sunucusunda Web References ' ı tıklatın.
- Solution Explorer Web References</a1> bölümünü genişletin ve kullanılan ad unutmayın.
- XMLDocService Web hizmeti proxy'si nesnesinin bir kopyas?n? olu?turun: Ana işlevi aşağıdaki kodu yapıştırın:
localhost.XMLDocService myXMLDocService = new localhost.XmlDocService();
- <a0>Proxy</a0> nesnesinin yöntemini çağırmak için şu kodu kullanın:
XmlDocument myXmlDocumentObject = myXMLDocService.GetXmlDocument();
- Yapı) menüsünde tıklatın Build Solution konsol uygulaması oluşturmak için.
- Yapı aşağıdaki hata iletisini alıyorsunuz:
Örtülü olarak 'System.Xml.XmlNode' için ' System.Xml.XmlDocument' türüne dönüştürülemiyor
- Yöntem çağırma aşağıdaki ile Değiştir:
XmlNode myXMLNodeObject = myXMLDocService.GetXmlDocument();
- Yapı) menüsünde tıklatın Build Solution konsol uygulaması oluşturmak için. Uygulama başarıyla oluşturabilirsiniz.
- Kendi ImportNode yöntemini kullanarak bir XmlDocument nesnesine döndürülen olarak XmlNode verilerde yüklenemedi:
XmlDocument myXmlDocumentObject = new XmlDocument();
myXmlDocumentObject.AppendChild(myXmlDocumentObject.ImportNode(myXMLNodeObject,true));
- Yazarın adını döndüren bir Web hizmeti yöntemi çağrısı yapın:
string strFirstName = WebServiceObject.GetFirstName( XmlDocumentObject );
- Yazar adı, konsol üzerindeki yazdırma:
Console.WriteLine( "The first name of the author is: " +strFirstName );
- Yapı) menüsünde tıklatın Build Solution konsol uygulaması oluşturmak için.
- Hata Ayıkla) menüsünde, konsol uygulamayı çalıştırmak için Run ' ı tıklatın.
Sorun Giderme
Dönüş değeri, istemci uygulamasını başka bir nesneye
XmlDocumentXmlDocument nesneyi döndüren bir Web hizmeti yöntemi atarsanız, aşağıdaki özel durum hata iletisi alırsınız:
Örtülü olarak dönüştürülemiyor 'System.Xml.XmlDocument' için ' System.Xml.XmlNode' yazın
Microsoft .NET ile aşağı çevrim izin hata oluşur. Döndürülen olarak
XmlDocument bir
XmlNode sıralanmış.
XmlDocumentXmlNode devralınır olduğundan, bir
XmlNode nesne
XmlDocument nesneye atayamazsınız.
Benzer şekilde,
XmlDocument parametrelerini göstermek için <a0></a0>, Parametreler
XmlNode nesneleri olarak tanımlamalısınız. Parametreler
XmlDocument bildirirseniz, aşağıdaki özel durum hata iletisi alırsınız:
Belirtilen atama geçerli değil.
Istemciden geçirilir
XmlDocument bir
XmlNode sıralanmış özel durum oluşur ve
XmlNode nesneyi
XmlDocument parametre nesneye atamak kod çalışır (aşağı çevrim. NET'te izin verilmez).
Web hizmetleri oluşturma hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
308359
(http://support.microsoft.com/kb/308359/EN-US/
)
NASıL YAPıLıR:, Visual C# .NET kullanarak basit bir Web hizmeti yazma