Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Paket dotnet-svcutil.xmlserializer NuGet dapat membuat rakitan serialisasi sebelumnya untuk proyek .NET Core. Ini tahap awal menghasilkan kode serialisasi C# untuk tipe-tipe pada aplikasi klien yang digunakan oleh Kontrak Layanan WCF dan yang dapat diserialisasikan dengan XmlSerializer. Ini meningkatkan performa startup serialisasi XML saat membuat serialisasi atau deserialisasi objek dari jenis tersebut.
Prasyarat
- .NET Core 2.1 SDK atau yang lebih baru
- Editor kode favorit Anda
Anda dapat menggunakan perintah dotnet --info untuk memeriksa versi .NET SDK dan runtime mana yang sudah Anda instal.
Memulai Langkah Pertama
Untuk digunakan dotnet-svcutil.xmlserializer dalam aplikasi konsol .NET Core:
Buat Layanan WCF bernama 'MyWCFService' menggunakan templat default 'Aplikasi Layanan WCF' di .NET Framework. Tambahkan
[XmlSerializerFormat]atribut pada metode layanan seperti berikut ini:[ServiceContract] public interface IService1 { [XmlSerializerFormat] [OperationContract(Action = "http://tempuri.org/IService1/GetData", ReplyAction = "http://tempuri.org/IService1/GetDataResponse")] string GetData(int value); }Buat aplikasi konsol .NET Core sebagai aplikasi klien WCF yang menargetkan pada .NET Core 2.1 atau versi yang lebih baru. Misalnya, buat aplikasi bernama 'MyWCFClient' dengan perintah berikut:
dotnet new console --name MyWCFClientUntuk memastikan proyek Anda menargetkan .NET Core 2.1 atau yang lebih baru, periksa
TargetFrameworkelemen XML dalam file proyek Anda:<TargetFramework>netcoreapp2.1</TargetFramework>Tambahkan referensi paket ke
System.ServiceModel.Httpdengan menjalankan perintah berikut:dotnet add package System.ServiceModel.HttpTambahkan kode Klien WCF:
using System.ServiceModel; class Program { static void Main(string[] args) { var myBinding = new BasicHttpBinding(); var myEndpoint = new EndpointAddress("http://localhost:2561/Service1.svc"); //Fill your service url here var myChannelFactory = new ChannelFactory<IService1>(myBinding, myEndpoint); IService1 client = myChannelFactory.CreateChannel(); string s = client.GetData(1); ((ICommunicationObject)client).Close(); } } [ServiceContract] public interface IService1 { [XmlSerializerFormat] [OperationContract(Action = "http://tempuri.org/IService1/GetData", ReplyAction = "http://tempuri.org/IService1/GetDataResponse")] string GetData(int value); }Tambahkan referensi ke
dotnet-svcutil.xmlserializerpaket dengan menjalankan perintah berikut:dotnet add package dotnet-svcutil.xmlserializerMenjalankan perintah harus menambahkan entri ke file proyek Anda yang mirip dengan ini:
<ItemGroup> <DotNetCliToolReference Include="dotnet-svcutil.xmlserializer" Version="1.0.0" /> </ItemGroup>Bangun aplikasi dengan menjalankan
dotnet build. Jika semuanya berhasil, rakitan bernama MyWCFClient.XmlSerializers.dll dihasilkan di folder output. Jika alat gagal menghasilkan rakitan, Anda akan melihat peringatan dalam output build.Mulai layanan WCF dengan, misalnya, berjalan
http://localhost:2561/Service1.svcdi browser. Kemudian mulai aplikasi klien, dan akan secara otomatis memuat dan menggunakan serializer yang telah dibuat sebelumnya pada runtime.