Bagikan melalui


Alat dotnet-svcutil WCF untuk .NET Core

Alat dotnet-svcutil Windows Communication Foundation (WCF) adalah alat .NET yang mengambil metadata dari layanan web di lokasi jaringan atau dari file WSDL, dan menghasilkan kelas WCF yang berisi metode proksi klien yang mengakses operasi layanan web.

Mirip dengan Metadata Model Layanan - alat svcutil untuk proyek .NET Framework, dotnet-svcutil adalah alat baris perintah untuk menghasilkan referensi layanan web yang kompatibel dengan proyek .NET Core dan .NET Standard.

Alat dotnet-svcutil adalah opsi alternatif untuk penyedia layanan terhubung WCF Web Service Reference Visual Studio yang pertama kali dikirim dengan Visual Studio 2017 versi 15.5. Alat dotnet-svcutil sebagai alat .NET, tersedia lintas platform di Linux, macOS, dan Windows.

Penting

Anda seharusnya hanya mereferensikan layanan dari sumber tepercaya. Menambahkan referensi dari sumber yang tidak dipercaya dapat membahayakan keamanan.

Prasyarat

Memulai

Contoh berikut memancang Anda melalui langkah-langkah yang diperlukan untuk menambahkan referensi layanan web ke proyek web .NET Core dan memanggil layanan. Anda akan membuat aplikasi web .NET Core bernama HelloSvcutil dan menambahkan referensi ke layanan web yang mengimplementasikan kontrak berikut:

[ServiceContract]
public interface ISayHello
{
    [OperationContract]
    string Hello(string name);
}

Untuk contoh ini, mari kita asumsikan layanan web akan dihosting di alamat berikut: http://contoso.com/SayHello.svc

Dari jendela perintah Windows, macOS, atau Linux lakukan langkah-langkah berikut:

  1. Buat direktori bernama HelloSvcutil untuk proyek Anda dan jadikan direktori Anda saat ini, seperti dalam contoh berikut:

    mkdir HelloSvcutil
    cd HelloSvcutil
    
  2. Buat proyek web C# baru di direktori tersebut dotnet new menggunakan perintah sebagai berikut:

    dotnet new web
    
  3. dotnet-svcutil Instal paket NuGet sebagai alat CLI:

    dotnet tool install --global dotnet-svcutil
    
  4. Jalankan perintah dotnet-svcutil untuk menghasilkan file referensi layanan web sebagai berikut:

    dotnet-svcutil http://contoso.com/SayHello.svc
    

File yang dihasilkan disimpan sebagai HelloSvcutil/ServiceReference/Reference.cs. Alat dotnet-svcutil juga menambahkan ke proyek paket WCF yang sesuai yang diperlukan oleh kode proksi sebagai referensi paket.

Menggunakan Referensi Layanan

  1. Pulihkan paket WCF menggunakan dotnet restore perintah sebagai berikut:

    dotnet restore
    
  2. Temukan nama kelas klien dan operasi yang ingin Anda gunakan. Reference.cs akan berisi kelas yang mewarisi dari System.ServiceModel.ClientBase, dengan metode yang dapat digunakan untuk memanggil operasi pada layanan. Dalam contoh ini, Anda ingin memanggil operasi Halo layanan SayHello. ServiceReference.SayHelloClient adalah nama kelas klien, dan memiliki metode yang disebut HelloAsync yang dapat digunakan untuk memanggil operasi.

  3. Startup.cs Buka file di editor Anda, dan tambahkan using direktif untuk namespace referensi layanan di bagian atas:

    using ServiceReference;
    
  4. Configure Edit metode untuk memanggil layanan web. Anda melakukan ini dengan membuat instans kelas yang mewarisi dan ClientBase memanggil metode pada objek klien:

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
    
        app.Run(async (context) =>
        {
            var client = new SayHelloClient();
            var response = await client.HelloAsync();
            await context.Response.WriteAsync(response);
        });
    }
    
    
  5. Jalankan aplikasi menggunakan dotnet run perintah sebagai berikut:

    dotnet run
    
  6. Navigasi ke URL yang tercantum di konsol (misalnya, http://localhost:5000) di browser web Anda.

Anda akan melihat output berikut: "Halo dotnet-svcutil!"

Untuk deskripsi terperinci tentang dotnet-svcutil parameter alat, panggil alat yang meneruskan parameter bantuan sebagai berikut:

dotnet-svcutil --help

Umpan balik & pertanyaan

Jika Anda memiliki pertanyaan atau umpan balik, buka masalah di GitHub. Anda juga dapat meninjau pertanyaan atau masalah yang ada di repositori WCF di GitHub.

Catatan rilis

Informasi