Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Balíček dotnet-svcutil.xmlserializer NuGet může předem vygenerovat sestavení serializace pro projekty .NET Core. Předgeneruje kód serializace jazyka C# pro typy v klientské aplikaci, které jsou používány kontraktem služby WCF a které lze serializovat XmlSerializer. To zlepšuje výkon při spouštění serializace XML při serializaci nebo deserializaci objektů těchto typů.
Požadavky
- .NET Core 2.1 SDK nebo novější
- Váš oblíbený editor kódu
Pomocí příkazu dotnet --info můžete zkontrolovat, které verze sady .NET SDK a modulu runtime už máte nainstalované.
Začínáme
Aby bylo možné použít dotnet-svcutil.xmlserializer v konzolové aplikaci .NET Core:
Vytvořte službu WCF s názvem MyWCFService pomocí výchozí šablony Wcf Service Application v rozhraní .NET Framework. Přidejte
[XmlSerializerFormat]atribut pro metodu služby následujícím způsobem:[ServiceContract] public interface IService1 { [XmlSerializerFormat] [OperationContract(Action = "http://tempuri.org/IService1/GetData", ReplyAction = "http://tempuri.org/IService1/GetDataResponse")] string GetData(int value); }Vytvořte konzolovou aplikaci .NET Core jako klientskou aplikaci WCF, která cílí na .NET Core 2.1 nebo novější verze. Vytvořte například aplikaci s názvem MyWCFClient pomocí následujícího příkazu:
dotnet new console --name MyWCFClientPokud chcete zajistit, aby váš projekt cílil na .NET Core 2.1 nebo novější, zkontrolujte
TargetFrameworkelement XML v souboru projektu:<TargetFramework>netcoreapp2.1</TargetFramework>Přidejte odkaz na
System.ServiceModel.Httpbalíček spuštěním následujícího příkazu:dotnet add package System.ServiceModel.HttpPřidejte kód klienta WCF:
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); }Přidejte do
dotnet-svcutil.xmlserializerbalíčku odkaz spuštěním následujícího příkazu:dotnet add package dotnet-svcutil.xmlserializerSpuštěním příkazu by se měla do souboru projektu přidat položka podobná této:
<ItemGroup> <DotNetCliToolReference Include="dotnet-svcutil.xmlserializer" Version="1.0.0" /> </ItemGroup>Sestavte aplikaci spuštěním
dotnet buildpříkazu. Pokud vše proběhne úspěšně, vygeneruje se ve výstupní složce sestavení s názvem MyWCFClient.XmlSerializers.dll . Pokud nástroj neuspěje ve vytvoření sestavení, zobrazí se ve výstupu sestavení varování.Spusťte službu WCF například spuštěním
http://localhost:2561/Service1.svcv prohlížeči. Pak spusťte klientskou aplikaci a automaticky se načte a použije předem generované serializátory za běhu.