DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 326790 - Última revisão: segunda-feira, 28 de abril de 2003 - Revisão: 4.1

 

Nesta página

Sumário

A ferramenta Web Services Description Language (WSDL.exe) gera código proxy de XML Web services. Os tipos de gerado que são usados na classe de proxy são baseados no conteúdo do documento WSDL que descreve o XML Web service. No entanto, os tipos gerados podem não ser o que você deseja nem o que você esperava.

WSDL.exe determina que a melhor gerado tipo a ser usado para os objetos especificados na descrição do serviço. Em alguns casos, a ferramenta usa uma abordagem menos comum-denominador para objetos de conversão para um tipo. Por exemplo, um parâmetro de ArrayList em um WebMethod é descrito em WSDL como um esquema XML (XSD) seqüência. Quando WSDL.exe localiza essa matriz descrição a descrição de serviço, WSDL.exe e gera uma classe proxy que usa uma matriz de objeto. Você pode preferir trabalhar com uma ArrayList , que era o tipo de original que foi usado no WebMethod. Se desejar usar os tipos gerados, você pode alterar os tipos gerados para tipos mais desejáveis. Para obter o tipo de objeto apropriado, você pode abrir o arquivo que contém a classe proxy gerada, alterar manualmente o parâmetro do método gerado e volte tipos para os tipos de objeto apropriado.

Gerar código proxy

No exemplo a seguir, o serviço XML da Web tem o serviço da Web método com o seguinte protótipo:
string DummyMethod(System.Collections.ArrayList intList)
				
você pode usar o WSDL.exe para gerar o arquivo de origem de proxy.

Modificar manualmente o código

  1. Abra o arquivo de origem proxy em um editor de texto.
  2. Localizar os dois métodos:
            public string DummyMethod(object[] intList) {
                object[] results = this.Invoke("DummyMethod", new object[] {
                            intList});
                return ((string)(results[0]));
            }
    
            public System.IAsyncResult BeginDummyMethod(object[] intList, System.AsyncCallback callback, object asyncState) {
                return this.BeginInvoke("DummyMethod", new object[] {
                            intList}, callback, asyncState);
            }
    					
  3. Modificar o código para:
            public string DummyMethod(System.Collections.ArrayList intList) {
                object[] results = this.Invoke("DummyMethod", new object[] {
                            intList});
                return ((string)(results[0]));
            }
    
            public System.IAsyncResult BeginDummyMethod(System.Collections.ArrayList intList, System.AsyncCallback callback, object asyncState) {
                return this.BeginInvoke("DummyMethod", new object[] {
                            intList}, callback, asyncState);
            }
    					

Para mais informações

XML Web services serializar objetos em XML e, em seguida, desserializar o XML para objetos. Geralmente, um objeto de um determinado tipo pode ser serializado e desserializado em seguida, para outro objeto do mesmo tipo. No entanto, se você usar tipos diferentes, isso pode não funcionar.



Referências

Para obter informações adicionais sobre como tipos são serializados e desserializados, visite o seguinte site:
Serialização SOAP e XML
http://msdn.microsoft.com/library/?url=/library/en-us/cpguide/html/cpconserialization.asp?frame=true (http://msdn.microsoft.com/library/?url=/library/en-us/cpguide/html/cpconserialization.asp?frame=true)



A informação contida neste artigo aplica-se a:
  • Microsoft Web Services (included with the .NET Framework) 1.0
  • Microsoft Web Services Enhancements para Microsoft .NET 1.1
Palavras-chave: 
kbmt kbhowtomaster KB326790 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 326790  (http://support.microsoft.com/kb/326790/en-us/ )
Retired KB ArticleAviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store