Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
dotnet-svcutil.xmlserializer NuGet paketi .NET Core projeleri için bir serileştirme derlemesi önceden oluşturabilir. İstemci uygulamasında WCF Hizmet Sözleşmesi tarafından kullanılan ve XmlSerializer tarafından seri hale getirilebilen türler için C# serileştirme kodunu önceden oluşturur. Bu, bu türlerdeki nesneleri seri hale getirme veya seri durumdan çıkarma sırasında XML serileştirmenin başlangıç performansını artırır.
Önkoşullar
- .NET Core 2.1 SDK veya üzeri
- Sık kullandığınız kod düzenleyicisi
Komutunu dotnet --info kullanarak .NET SDK ve çalışma zamanının hangi sürümlerini zaten yüklediğinizi de kontrol edebilirsiniz.
Başlangıç Yapmak
.NET Core konsol uygulamasında dotnet-svcutil.xmlserializer kullanmak için:
.NET Framework'te varsayılan 'WCF Hizmet Uygulaması' şablonunu kullanarak 'MyWCFService' adlı bir WCF Hizmeti oluşturun. Hizmet yöntemine aşağıdaki gibi öznitelik ekleyin
[XmlSerializerFormat]:[ServiceContract] public interface IService1 { [XmlSerializerFormat] [OperationContract(Action = "http://tempuri.org/IService1/GetData", ReplyAction = "http://tempuri.org/IService1/GetDataResponse")] string GetData(int value); }.NET Core 2.1 veya sonraki sürümleri hedefleyen WCF istemci uygulaması olarak bir .NET Core konsol uygulaması oluşturun. Örneğin, aşağıdaki komutla 'MyWCFClient' adlı bir uygulama oluşturun:
dotnet new console --name MyWCFClientProjenizin .NET Core 2.1 veya üstünü hedeflediğinden emin olmak için proje dosyanızdaki XML öğesini inceleyin
TargetFramework:<TargetFramework>netcoreapp2.1</TargetFramework>Aşağıdaki komutu çalıştırarak,
System.ServiceModel.Httppaketine bir paket başvurusu ekleyin:dotnet add package System.ServiceModel.HttpWCF İstemci kodunu ekleyin:
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); }Aşağıdaki komutu çalıştırarak
dotnet-svcutil.xmlserializerpaketine bir referans ekleyin:dotnet add package dotnet-svcutil.xmlserializerkomutu çalıştırıldığında proje dosyanıza şuna benzer bir girdi eklenmelidir:
<ItemGroup> <DotNetCliToolReference Include="dotnet-svcutil.xmlserializer" Version="1.0.0" /> </ItemGroup>komutunu çalıştırarak
dotnet builduygulamayı oluşturun. Her şey başarılı olursa, çıkış klasöründe MyWCFClient.XmlSerializers.dll adlı bir derleme oluşturulur. Araç derlemeyi oluşturamadıysa derleme çıkışında uyarılar görürsünüz.WCF hizmetini, örneğin tarayıcıda çalıştırarak
http://localhost:2561/Service1.svcbaşlatın. Ardından istemci uygulamasını başlatın; çalışma zamanında önceden oluşturulmuş seri hale getiricileri otomatik olarak yükleyip kullanır.