Artikel ini merujuk kepada Microsoft berikut.NET
Kerangka perpustakaan kelas namespaces:
Artikel ini selangkah demi selangkah menjelaskan bagaimana untuk menulis kode dalam.NET aplikasi untuk mengeksekusi metode layanan Web yang mengambil
XmlDocument parameter, atau kembali itu
XmlDocument objek.
Kapan
XmlDocument objek yang dilewatkan sebagai parameter ke layanan Web metode, atau yang
kembali dari layanan Web metode, mereka mengerahkan sebagai
XmlNode objek. The
XmlDocument dan
XmlNode jenis dilaksanakan dalam
System.xml namespace)
XmlDocument berasal dari
XmlNode).
Jika manipulasi data yang mengerahkan sebagai
XmlNode (yang dilewatkan ke metode layanan Web, atau kembali oleh layanan Web metode) mengharuskan Anda menggunakan API XmlDocument yang tidak terkena oleh
XmlNode jenis, Anda harus memuat data dalam
XmlDocument objek. Untuk melakukannya, gunakan salah satu dari metode berikut ini:
- XmlDocument.LoadXml(XmlNode.OuterXml)
- XmlDocument.ImportNode(XmlNode, true)
Contoh dalam artikel ini menunjukkan bagaimana untuk menggunakan metode ini
- Di Microsoft Visual Studio.NET, membuat baru Visual C#
.NET ASP.NET layanan Web proyek. Untuk melakukannya, ikuti langkah-langkah berikut:
- Pada Berkas menu, klik Baru, lalu klik Project.
- Dalam Jenis proyek Daftar, klik Visual C# proyek, lalu klik ASP.NET Web
Layanan dalam Pola acu panel.
- Dalam Lokasi kotak teks, ketikXMLDocService untuk mengubah nama default (default
nama adalah WebService1).
- Mengubah nama layanan Web standar yang dibuat
dari Service1.asmx untuk XMLDocService.asmx.
- Klik Klik di sini untuk beralih ke tampilan kode dalam
lingkungan desainer untuk beralih ke tampilan kode.
- Menentukan metode yang mengembalikan XMLDocument objek. Setiap metode yang layanan akan mengekspos harus ditandai
dengan WebMethod atribut. Tanpa atribut ini,
layanan tidak akan memaparkan metode.
Catatan Tidak setiap metode harus WebMethod atribut. Atribut ini dapat digunakan untuk menyembunyikan beberapa implementasi
rincian yang disebut oleh Web publik layanan metode atau jika WebService kelas yang digunakan dalam aplikasi lokal. Meskipun aplikasi lokal
dapat menggunakan setiap kelas publik, hanya WebMethod metode dapat diakses dari jarak jauh sebagai XML Web
layanan. - Menambahkan metode layanan Web berikut untuk XMLDocService kelas yang baru saja dibuat:
[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;
} - Pada Bangun menu, klik Bangun
Solusi untuk membangun layanan Web.
- Buka halaman layanan XMLDocService.asmx XML Web untuk menguji
layanan XML Web. Jika Anda mengatur komputer lokal untuk meng-host halaman, URL adalah
http://localhost/XMLDocService/XMLDocService.ASMX. Microsoft ASP.NET
Runtime kembali halaman bantuan layanan XML Web yang menjelaskan XML Web
layanan. Anda juga dapat menggunakan halaman ini untuk menguji berbagai layanan XML Web
metode.
- Dalam Visual Studio.NET, klik Baru padaBerkas menu, dan kemudian klik Project.
- Dalam Jenis proyek Daftar, klikVisual C# proyek, lalu klik Konsol
Aplikasi dalam Pola acu panel.
- Dalam aplikasi baru, menambahkan referensi ke XMLDocService Layanan web.
Langkah ini menciptakan kelas proxy pada
komputer klien. Setelah kelas proxy dibuat, Anda dapat membuat benda yang
berdasarkan kelas. Masing-masing metode panggilan yang dibuat dengan objek berlalu
untuk uniform resource identifier (URI) dari layanan Web sebagai permintaan SOAP.- Pada Project menu, klik Tambahkan
Referensi web.
- Dalam Menambahkan referensi Web kotak dialog,
Ketik URL layanan Web dalam Alamat kotak teks, dan
kemudian tekan ENTER. Jika Anda mengatur komputer lokal untuk host layanan Web,
URL adalah http://localhost/XMLDocService/XMLDocService.asmx.
- Klik Menambahkan referensi. Atau,
Anda dapat mengetik URL penemuan file (XMLDocService.vsdisco) atau klik Referensi web pada Server Web lokal dalam pane kiri untuk memilih
layanan XMLDocService dari daftar.
- Memperluas Referensi web bagian dari
Solusi Explorer dan catatan namespace yang digunakan.
- Membuat sebuah instance dari objek proxy untuk XMLDocService Layanan web. Paste kode berikut di Utama fungsi:
localhost.XMLDocService myXMLDocService = new localhost.XmlDocService();
- Untuk memanggil metode objek proxy, menggunakan berikut
kode:
XmlDocument myXmlDocumentObject = myXMLDocService.GetXmlDocument();
- Pada Bangun menu, klik Bangun
Solusi untuk membangun aplikasi konsol.
- Anda menerima pesan galat membangun berikut:
Tidak dapat
secara implisit mengubah tipe 'System.Xml.XmlDocument' untuk
'System.Xml.XmlNode'
- Menggantikan metode doa dengan berikut:
XmlNode myXMLNodeObject = myXMLDocService.GetXmlDocument();
- Pada Bangun menu, klik Bangun
Solusi untuk membangun aplikasi konsol. Anda dapat berhasil membangun
aplikasi.
- Memuat data dalam kembali XmlNode ke XmlDocument objek menggunakan yang ImportNode metode:
XmlDocument myXmlDocumentObject = new XmlDocument();
myXmlDocumentObject.AppendChild(myXmlDocumentObject.ImportNode(myXMLNodeObject,true));
- Membuat panggilan ke layanan Web metode yang mengembalikan
nama penulis:
string strFirstName = WebServiceObject.GetFirstName( XmlDocumentObject );
- Mencetak nama penulis pada konsol:
Console.WriteLine( "The first name of the author is: " +strFirstName );
- Pada Bangun menu, klik Bangun
Solusi untuk membangun aplikasi konsol.
- Pada Debug menu, klikMenjalankan untuk menjalankan aplikasi konsol.
Mengatasi masalah
Jika Anda menetapkan nilai kembali metode layanan Web yang
kembali
XmlDocument objek lain
XmlDocument objek dalam aplikasi klien, Anda menerima berikut
pengecualian pesan galat:
Tidak dapat secara implisit mengubah jenis
'System.Xml.XmlNode' untuk 'System.Xml.XmlDocument'
Kesalahan terjadi
karena down-casting tidak diperbolehkan di Microsoft.NET. Kembali
XmlDocument mengerahkan sebagai
XmlNode. Anda tidak dapat menetapkan
XmlNode keberatan
XmlDocument objek karena
XmlDocument mewarisi dari
XmlNode.
Demikian pula, untuk mengekspos
XmlDocument parameter, Anda harus menentukan parameter sebagai
XmlNode objek. Jika Anda menyatakan parameter sebagai
XmlDocument, Anda menerima pesan galat pengecualian berikut:
Pengecualian terjadi karena
The
XmlDocument yang dikirimkan dari klien mengerahkan sebagai
XmlNode dan kode mencoba untuk menetapkan
XmlNode keberatan
XmlDocument parameter objek (bawah-casting tidak diperbolehkan di.NET).
Untuk informasi tambahan tentang cara
menciptakan layanan Web, klik nomor artikel di bawah ini untuk melihat artikel di
Basis Pengetahuan Microsoft:
308359
(http://support.microsoft.com/kb/308359/EN-US/
)
CARA: Menulis layanan Web sederhana dengan menggunakan Visual C#.NET