Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A dotnet-svcutil.xmlserializer NuGet-csomag előre létrehozhat szerializálási szerelvényt .NET Core-projektekhez. Előre generálja a C# szerializálási kódot az ügyfélalkalmazás típusaihoz, amelyeket a WCF szolgáltatási szerződés használ és amelyeket az XmlSerializer képes szerializálni. Ez javítja az XML-szerializálás indítási teljesítményét az ilyen típusú objektumok szerializálása vagy deszerializálása során.
Előfeltételek
- .NET Core 2.1 SDK vagy újabb
- Kedvenc kódszerkesztője
A parancs segítségével dotnet --info ellenőrizheti, hogy a .NET SDK és a futtatókörnyezet mely verzióit telepítette már.
Kezdő lépések
.NET Core-konzolalkalmazásban való használathoz dotnet-svcutil.xmlserializer :
Hozzon létre egy "MyWCFService" nevű WCF-szolgáltatást a .NET-keretrendszer alapértelmezett "WCF szolgáltatásalkalmazása" sablonjának használatával. Adjon hozzá
[XmlSerializerFormat]attribútumot a szolgáltatásmetódushoz, például az alábbiakhoz:[ServiceContract] public interface IService1 { [XmlSerializerFormat] [OperationContract(Action = "http://tempuri.org/IService1/GetData", ReplyAction = "http://tempuri.org/IService1/GetDataResponse")] string GetData(int value); }Hozzon létre egy .NET Core-konzolalkalmazást WCF-ügyfélalkalmazásként, amely a .NET Core 2.1 vagy újabb verzióit célozza meg. Hozzon létre például egy "MyWCFClient" nevű alkalmazást a következő paranccsal:
dotnet new console --name MyWCFClientAnnak ellenőrzéséhez, hogy a projekt a .NET Core 2.1-es vagy újabb verzióját célozza-e, vizsgálja meg a
TargetFrameworkprojektfájl XML-elemét:<TargetFramework>netcoreapp2.1</TargetFramework>Adjon hozzá egy csomaghivatkozást
System.ServiceModel.Httpa következő parancs futtatásával:dotnet add package System.ServiceModel.HttpAdja hozzá a WCF-ügyfélkódot:
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); }Adjon hozzá egy hivatkozást a
dotnet-svcutil.xmlserializercsomaghoz a következő parancs futtatásával:dotnet add package dotnet-svcutil.xmlserializerA parancs futtatásával az alábbihoz hasonló bejegyzést kell hozzáadnia a projektfájlhoz:
<ItemGroup> <DotNetCliToolReference Include="dotnet-svcutil.xmlserializer" Version="1.0.0" /> </ItemGroup>Hozza létre az alkalmazást a futtatással
dotnet build. Ha minden sikeres, létrejön egy MyWCFClient.XmlSerializers.dll nevű szerelvény a kimeneti mappában. Ha az eszköz nem tudta létrehozni a szerelvényt, figyelmeztetések jelennek meg a build kimenetében.Indítsa el a WCF szolgáltatást például a böngészőben.
http://localhost:2561/Service1.svcEzután indítsa el az ügyfélalkalmazást, és futásidőben automatikusan betölti és használja az előre létrehozott szerializálókat.