Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
dotnet-svcutil.xmlserializer NuGet-paketet kan förgenerera en serialiseringssammansättning för .NET Core-projekt. Den genererar C#-serialiseringskod för de typer i klientprogrammet som används av WCF-tjänstkontraktet och som kan serialiseras av XmlSerializer. Detta förbättrar startprestandan för XML-serialisering vid serialisering eller deserialisering av objekt av dessa typer.
Förutsättningar
- .NET Core 2.1 SDK eller senare
- Din favoritkodredigerare
Du kan använda kommandot dotnet --info för att kontrollera vilka versioner av .NET SDK och körning som du redan har installerat.
Komma igång
Så här använder dotnet-svcutil.xmlserializer du i ett .NET Core-konsolprogram:
Skapa en WCF-tjänst med namnet "MyWCFService" med standardmallen "WCF Service Application" i .NET Framework. Lägg till
[XmlSerializerFormat]attribut för tjänstmetoden på följande sätt:[ServiceContract] public interface IService1 { [XmlSerializerFormat] [OperationContract(Action = "http://tempuri.org/IService1/GetData", ReplyAction = "http://tempuri.org/IService1/GetDataResponse")] string GetData(int value); }Skapa ett .NET Core-konsolprogram som WCF-klientprogram som är avsett för .NET Core 2.1 eller senare versioner. Skapa till exempel en app med namnet "MyWCFClient" med följande kommando:
dotnet new console --name MyWCFClientKontrollera xml-elementet i projektfilen för att se till att projektet riktar sig mot .NET Core 2.1 eller senare
TargetFramework:<TargetFramework>netcoreapp2.1</TargetFramework>Lägg till en paketreferens till
System.ServiceModel.Httpgenom att köra följande kommando:dotnet add package System.ServiceModel.HttpLägg till WCF-klientkoden:
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); }Lägg till en referens till paketet
dotnet-svcutil.xmlserializergenom att köra följande kommando:dotnet add package dotnet-svcutil.xmlserializerOm du kör kommandot bör du lägga till en post i projektfilen som liknar den här:
<ItemGroup> <DotNetCliToolReference Include="dotnet-svcutil.xmlserializer" Version="1.0.0" /> </ItemGroup>Skapa programmet genom att köra
dotnet build. Om allt lyckas genereras en sammansättning med namnet MyWCFClient.XmlSerializers.dll i utdatamappen. Om verktyget inte kunde generera sammansättningen visas varningar i kompileringsutdata.Starta WCF-tjänsten genom att till exempel köra
http://localhost:2561/Service1.svci webbläsaren. Starta sedan klientprogrammet, som automatiskt läser in och använder de förgenererade serialiserarna vid körning.