Gerando um cliente WCF a partir de metadados de serviço
Este tópico descreve como usar as várias opções no Svcutil.exe para gerar clientes a partir de documentos de metadados.
Os documentos de metadados podem estar em um armazenamento durável ou ser recuperados on-line. 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.
Pedido MEX para o endereço fornecido com
/mex
anexo.Solicitação DISCO (usando os DiscoveryClientProtocol serviços Web de ASP.NET) para o endereço fornecido.
Svcutil.exe gera o cliente com base no WSDL (Web Services Description Language) ou no arquivo de política recebido do serviço. O nome principal do usuário (UPN) é gerado concatenando o nome de usuário com "@" e, em seguida, adicionando um nome de domínio totalmente qualificado (FQDN). No entanto, para usuários que se registraram no Ative 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: A tentativa de logon falhou. Para resolver esse problema, corrija manualmente o arquivo de cliente que a ferramenta gerou.
svcutil.exe [/t:code] <metadataDocumentPath>* | <url>* | <epr>
Tipos de referência e compartilhamento
Opção | Description |
---|---|
/reference:<caminho do arquivo> | Tipos de referência no assembly especificado. Ao gerar clientes, use essa opção para especificar assemblies que podem conter tipos que representam os metadados que estão sendo importados. Forma abreviada: /r |
/excludeType:<tipo> | Especifica um nome de tipo totalmente qualificado ou qualificado para montagem a ser excluído dos tipos de contrato referenciados. Forma abreviada: /et |
Escolhendo um serializador
Opção | Description |
---|---|
/serializer:Automático | Seleciona automaticamente o serializador. Isso usa o DataContract serializador. Se isso falhar, o XmlSerializer é usado.Forma abreviada: /ser:Auto |
/serializer:DataContractSerializer | Gera tipos de dados que usam o DataContract serializador para serialização e desserialização.Forma abreviada: /ser:DataContractSerializer |
/serializer:XmlSerializer | Gera tipos de dados que usam o XmlSerializer para serialização e desserialização.Forma abreviada: /ser:XmlSerializer |
/importXmlTypes | Configura o DataContract serializador para importar não-tiposDataContract como IXmlSerializable tipos.Forma abreviada: /ixt |
/dataContractOnly | Gera código apenas para DataContract tipos. ServiceContract tipos são gerados.Você deve especificar apenas arquivos de metadados locais para essa opção. Forma abreviada: /dconly |
Escolher um idioma para o cliente
Opção | Description |
---|---|
/language:<idioma> | Especifica a linguagem de programação a ser usada para a geração de código. Forneça um nome de idioma registrado no arquivo Machine.config ou o nome totalmente qualificado de uma classe que herda do 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 CodeDomProvider classe. |
Escolhendo um namespace para o cliente
Opção | Description |
---|---|
/namespace:<string,string> | Especifica um mapeamento de um WSDL ou esquema XML para um namespace CLR (Common Language Runtime targetNamespace ). Usando um curinga (*) para os mapas, targetNamespace tudo targetNamespaces sem um mapeamento explícito para esse namespace CLR.Para certificar-se de que o nome do contrato de mensagem não colide com o nome da operação, qualifique a referência de tipo com dois pontos duplos ( :: ) ou certifique-se de que os nomes são 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 vinculação de dados
Opção | Description |
---|---|
/enableDataBinding | Implementa a interface em todos os DataContract tipos para habilitar a INotifyPropertyChanged vinculação de dados.Forma abreviada: /edb |
Gerando configuração
Opção | Description |
---|---|
/config:<configFile> | Especifica o nome do 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. |
/noConfiguração | Não gere arquivos de configuração. |