Makale numarası: 330600 - Son Gözden Geçirme: 04 Eylül 2003 Perşembe - Gözden geçirme: 6.4

NASıL YAPıLıR: için aktarılan veya WebMethods Visual C#. NET'i kullanarak döndürdü XmlDocument öğelerini kullanın...

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa
Bu makalede, aşağıdaki Microsoft .NET Framework Sınıf Kitaplığı ad alanlarına başvurulmaktadır:
  • System.XML

Özet

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.

Introduction

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.

Create a Web Method

  1. 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:
    1. Dosya menüsünden Yeni ' yi tıklatın ve sonra Project ' i tıklatın.
    2. Proje türleri listesinde, Visual C# Projects ' ı tıklatın ve sonra şablonları bölmesinde ASP.NET Web Service ' ı tıklatın.
  2. Konum kutusuna XMLDocService (WebService1 varsayılan adıdır) varsayılan adını yazın.
  3. Service1.asmx XMLDocService.asmx için oluşturulan varsayılan Web servisinde adını değiştirin.
  4. 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.
  5. 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.
  6. 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;
    }
  7. Oluştur) menüsünde tıklatın Build Solution Web hizmetini oluşturma.
  8. 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.

Consume the Web Method

  1. Visual Studio. NET'te, Dosya menüsünden Yeni'yi tıklatın ve sonra Project ' i tıklatın.
  2. Proje türleri listesinde, Visual C# Projects ' ı tıklatın ve şablonları bölmesinde Console Application ' ı tıklatın.
  3. 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.
    1. Proje menüsünde Add Web Reference.
    2. 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.
    3. 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.
    4. Solution Explorer Web References</a1> bölümünü genişletin ve kullanılan ad unutmayın.
  4. 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();
  5. <a0>Proxy</a0> nesnesinin yöntemini çağırmak için şu kodu kullanın:
    XmlDocument myXmlDocumentObject = myXMLDocService.GetXmlDocument();
  6. Yapı) menüsünde tıklatın Build Solution konsol uygulaması oluşturmak için.
  7. 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
  8. Yöntem çağırma aşağıdaki ile Değiştir:
    XmlNode myXMLNodeObject = myXMLDocService.GetXmlDocument();
  9. Yapı) menüsünde tıklatın Build Solution konsol uygulaması oluşturmak için. Uygulama başarıyla oluşturabilirsiniz.
  10. 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));
  11. Yazarın adını döndüren bir Web hizmeti yöntemi çağrısı yapın:
    string strFirstName = WebServiceObject.GetFirstName( XmlDocumentObject );
  12. Yazar adı, konsol üzerindeki yazdırma:
    Console.WriteLine( "The first name of the author is: " +strFirstName );
  13. Yapı) menüsünde tıklatın Build Solution konsol uygulaması oluşturmak için.
  14. 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).

Referanslar

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

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Web Services (included with the .NET Framework) 1.0
  • Microsoft Web Services Enhancements for Microsoft .NET 1.1
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
Anahtar Kelimeler: 
kbmt kbclient kbhowtomaster kbhowto KB330600 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:330600  (http://support.microsoft.com/kb/330600/en-us/ )