.NET Core için WCF dotnet-svcutil aracı
Windows Communication Foundation (WCF) dotnet-svcutil aracı, ağ konumundaki bir web hizmetinden veya WSDL dosyasından meta verileri alan ve web hizmeti işlemlerine erişen istemci proxy yöntemlerini içeren bir WCF sınıfı oluşturan bir .NET aracıdır.
.NET Framework projeleri için Hizmet Modeli Meta Verileri - svcutil aracına benzer şekilde dotnet-svcutil, .NET Core ve .NET Standard projeleriyle uyumlu bir web hizmeti başvurusu oluşturmaya yönelik bir komut satırı aracıdır.
dotnet-svcutil aracı, ilk olarak Visual Studio 2017 sürüm 15.5 ile birlikte gönderilen WCF Web Hizmeti Başvurusu Visual Studio bağlı hizmet sağlayıcısına alternatif bir seçenektir. .NET aracı olarak dotnet-svcutil aracı Linux, macOS ve Windows'da platformlar arası kullanılabilir.
Önemli
Yalnızca güvenilen bir kaynaktan gelen hizmetlere başvurmanız gerekir. Güvenilmeyen bir kaynaktan başvuru eklemek güvenliği tehlikeye atabilir.
Önkoşullar
- .NET Core 2.1 SDK veya sonraki sürümleri
- Sık kullandığınız kod düzenleyicisi
Başlarken
Aşağıdaki örnek, .NET Core web projesine web hizmeti başvurusu eklemek ve hizmeti çağırmak için gereken adımlarda size yol gösterir. HelloSvcutil adlı bir .NET Core web uygulaması oluşturacak ve aşağıdaki sözleşmeyi uygulayan bir web hizmetine başvuru ekleyeceksiniz:
[ServiceContract]
public interface ISayHello
{
[OperationContract]
string Hello(string name);
}
Bu örnekte web hizmetinin şu adreste barındırılacağını varsayalım: http://contoso.com/SayHello.svc
Windows, macOS veya Linux komut penceresinde aşağıdaki adımları gerçekleştirin:
Projeniz için HelloSvcutil adlı bir dizin oluşturun ve aşağıdaki örnekte olduğu gibi geçerli dizininiz yapın:
mkdir HelloSvcutil cd HelloSvcutil
Aşağıdaki komutu kullanarak
dotnet new
bu dizinde yeni bir C# web projesi oluşturun:dotnet new web
dotnet-svcutil
NuGet paketini CLI aracı olarak yükleyin:dotnet tool install --global dotnet-svcutil
aşağıdaki gibi web hizmeti başvuru dosyasını oluşturmak için dotnet-svcutil komutunu çalıştırın:
dotnet-svcutil http://contoso.com/SayHello.svc
Oluşturulan dosya HelloSvcutil/ServiceReference/Reference.cs olarak kaydedilir. dotnet-svcutil aracı ayrıca projeye proxy kodu için gerekli uygun WCF paketlerini paket başvurusu olarak ekler.
Hizmet Başvurusunu Kullanma
Aşağıdaki komutu kullanarak
dotnet restore
WCF paketlerini geri yükleyin:dotnet restore
Kullanmak istediğiniz istemci sınıfının ve işlemin adını bulun.
Reference.cs
, hizmetindeki işlemleri çağırmak için kullanılabilecek yöntemlerle öğesindenSystem.ServiceModel.ClientBase
devralan bir sınıf içerir. Bu örnekte SayHello hizmetinin Hello işlemini çağırmak istiyorsunuz.ServiceReference.SayHelloClient
, istemci sınıfının adıdır ve işlemi çağırmak için kullanılabilecek adlıHelloAsync
bir yöntemi vardır.Startup.cs
Dosyayı düzenleyicinizde açın ve en üstteki hizmet başvurusu ad alanı için birusing
yönerge ekleyin:using ServiceReference;
Configure
Web hizmetini çağırmak için yöntemini düzenleyin. Bunu, sınıfından devralanClientBase
bir örneği oluşturarak ve istemci nesnesinde yöntemini çağırarak yaparsınız: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); }); }
Aşağıdaki komutu kullanarak
dotnet run
uygulamayı çalıştırın:dotnet run
Web tarayıcınızda konsolda listelenen URL'ye (örneğin,
http://localhost:5000
) gidin.
Şu çıkışı görmeniz gerekir: "Hello dotnet-svcutil!"
Araç parametrelerinin dotnet-svcutil
ayrıntılı açıklaması için, yardım parametresini geçirerek aracı aşağıdaki gibi çağırın:
dotnet-svcutil --help
Geri bildirim ve sorular
Sorularınız veya geri bildirimleriniz varsa GitHub'da bir sorun açın. Ayrıca GitHub'daki WCF deposundaki mevcut soruları veya sorunları da gözden geçirebilirsiniz.