Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O pacote NuGet dotnet-svcutil.xmlserializer pode pré-gerar um assembly de serialização para projetos .NET Core. Ele gera previamente o código de serialização C# para os tipos no aplicativo cliente que são usados pelo Contrato de Serviço do WCF e que podem ser serializados pelo XmlSerializer. Isso melhora o desempenho de inicialização da serialização XML ao serializar ou desserializar objetos desses tipos.
Pré-requisitos
- SDK do .NET Core 2.1 ou posterior
- Seu editor de código favorito
Você pode usar o comando dotnet --info para verificar quais versões do SDK do .NET e do runtime você já instalou.
Como começar
Para usar dotnet-svcutil.xmlserializer em um aplicativo de console do .NET Core:
Crie um serviço WCF chamado 'MyWCFService' usando o modelo padrão 'Aplicativo de Serviço WCF' no .NET Framework. Adicione
[XmlSerializerFormat]atributo ao método de serviço da seguinte maneira:[ServiceContract] public interface IService1 { [XmlSerializerFormat] [OperationContract(Action = "http://tempuri.org/IService1/GetData", ReplyAction = "http://tempuri.org/IService1/GetDataResponse")] string GetData(int value); }Crie um aplicativo de console do .NET Core como um aplicativo cliente WCF direcionado ao .NET Core 2.1 ou versões posteriores. Por exemplo, crie um aplicativo chamado 'MyWCFClient' com o seguinte comando:
dotnet new console --name MyWCFClientPara garantir que seu projeto tenha como destino o .NET Core 2.1 ou posterior, inspecione o
TargetFrameworkelemento XML no arquivo de projeto:<TargetFramework>netcoreapp2.1</TargetFramework>Adicione uma referência de pacote a
System.ServiceModel.Httpexecutando o seguinte comando:dotnet add package System.ServiceModel.HttpAdicione o código do cliente 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); }Adicione uma referência ao
dotnet-svcutil.xmlserializerpacote executando o seguinte comando:dotnet add package dotnet-svcutil.xmlserializerA execução do comando deve adicionar uma entrada ao arquivo de projeto semelhante a esta:
<ItemGroup> <DotNetCliToolReference Include="dotnet-svcutil.xmlserializer" Version="1.0.0" /> </ItemGroup>Crie o aplicativo executando
dotnet build. Se tudo for bem-sucedido, um assembly chamado MyWCFClient.XmlSerializers.dll será gerado na pasta de saída. Se a ferramenta não tiver gerado o assembly, você verá avisos na saída do build.Inicie o serviço WCF executando, por exemplo,
http://localhost:2561/Service1.svcno navegador. Em seguida, inicie o aplicativo cliente e ele carregará e usará automaticamente os serializadores pré-gerados em runtime.