Gerando um cliente do WCF de metadados de serviço
Este tópico descreve como usar as várias opções em Svcutil.exe para gerar clientes a partir de documentos de metadados.
Os documentos de metadados podem estar em um armazenamento durável ou serem recuperados online. A recuperação online segue o protocolo WS-MetadataExchange ou o protocolo Microsoft Discovery (DISCO). Svcutil.exe emite as seguintes solicitações de metadados simultaneamente para recuperar metadados:
Solicitação WS-MetadataExchange (MEX) para o endereço fornecido.
Solicitação MEX para o endereço fornecido com
/mex
anexado.Solicitação DISCO (usando o DiscoveryClientProtocol dos serviços da Web ASP.NET) para o endereço fornecido.
Svcutil.exe gera o cliente com base no Web Services Description Language (WSDL) ou arquivo de política recebido do serviço. O nome principal do usuário (UPN) é gerado concatenando o nome do usuário com "@" e, em seguida, adicionando um nome de domínio totalmente qualificado (FQDN). No entanto, para usuários registrados no Active Directory, esse formato não é válido e o UPN que a ferramenta gera causa uma falha na autenticação Kerberos com a seguinte mensagem de erro: Falha na tentativa de logon. Para resolver esse problema, corrija manualmente o arquivo do cliente gerado pela ferramenta.
svcutil.exe [/t:code] <metadataDocumentPath>* | <url>* | <epr>
Tipos de referência e compartilhamento
Opção | Descrição |
---|---|
/reference:<file path> | Os tipos de referência no assembly especificado. Ao gerar clientes, use esta opção para especificar os assemblies que podem conter tipos que representam os metadados que estão sendo importados. Forma abreviada: /r |
/excludeType:<type> | Especifica um nome de tipo totalmente qualificado ou qualificado do assembly a ser excluído dos tipos de contrato referenciados. Forma abreviada: /et |
Escolhendo um serializador
Opção | Descrição |
---|---|
/serializer:Auto | Seleciona automaticamente o serializador. Isso usa o serializador DataContract . Se isso falhar, XmlSerializer será usado.Forma abreviada: /ser:Auto |
/serializer:DataContractSerializer | Gera tipos de dados que usam o serializador DataContract para serialização e desserialização.Forma abreviada: /ser:DataContractSerializer |
/serializer:XmlSerializer | Gera os tipos de dados que usam o XmlSerializer para serialização e desserialização.Forma abreviada: /ser:XmlSerializer |
/importXmlTypes | Configura o serializador DataContract para importar tipos não DataContract como tipos IXmlSerializable .Forma abreviada: /ixt |
/dataContractOnly | Gera código apenas para DataContract tipos. Tipos ServiceContract são gerados.Você deve especificar apenas arquivos de metadados locais para esta opção. Forma abreviada: /dconly |
Escolhendo uma linguagem para o cliente
Opção | Descrição |
---|---|
/language:<language> | Especifica a linguagem de programação a ser usada para gerar o código. Forneça um nome de linguagem registrado no arquivo Machine.config ou o nome totalmente qualificado de uma classe que herda de CodeDomProvider. Valores: c#, cs, csharp, vb, vbs, visualbasic, vbscript, javascript, c++, mc, cpp Padrão: csharp Forma abreviada: /l Para obter mais informações, consulte a classe CodeDomProvider. |
Escolhendo um namespace para o cliente
Opção | Descrição |
---|---|
/namespace:<string,string> | Especifica um mapeamento de um WSDL ou XML Schema targetNamespace para um namespace Common Language Runtime (CLR). Usar um curinga (*) para o targetNamespace mapeia todos os targetNamespaces sem um mapeamento explícito para esse namespace CLR.Para garantir que o nome do contrato de mensagem não colida com o nome da operação, qualifique a referência de tipo com dois-pontos duplos ( :: ) ou certifique-se de que os nomes sejam exclusivos.Padrão: Derivado do namespace de destino do documento de esquema para DataContracts . O namespace padrão é usado para todos os outros tipos gerados.Forma abreviada: /n |
Escolhendo uma associação de dados
Opção | Descrição |
---|---|
/enableDataBinding | Implementa a interface INotifyPropertyChanged em todos os tipos DataContract para habilitar a vinculação de dados.Forma abreviada: /edb |
Gerando configuração
Opção | Descrição |
---|---|
/config:<configFile> | Especifica o nome do arquivo para o arquivo de configuração gerado. Padrão: output.config |
/mergeConfig | Mescla a configuração gerada em um arquivo existente, em vez de substituir o arquivo existente. |
/noConfig | Não gera arquivos de configuração. |