COMO: Alterar tipos de utilizado nas classes de proxy que são gerados com Wsdl.exe

Traduções de Artigos Traduções de Artigos
Artigo: 326790 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

A ferramenta Web Services Description Language (Wsdl.exe) gera código de proxy para XML Web services. Os tipos de gerado que são utilizados na classe proxy baseiam-se o conteúdo do documento WSDL que descreve o serviço Web XML. No entanto, os tipos gerados poderão não ser que pretende nem previsto.

Wsdl.exe determina que o melhor gerado tipo a utilizar para os objectos especificados na descrição de serviço. Em alguns casos, a ferramenta utiliza uma abordagem menos-denominador comum para objectos de directores para um tipo. Por exemplo, um parâmetro de ArrayList um WebMethod é descrito em WSDL como um esquema XML (XSD) sequência. Quando, em seguida Wsdl.exe localiza a descrição de serviço, Wsdl.exe esta descrição de matriz, gera uma classe proxy que utiliza uma matriz de objectos. Poderá preferir trabalhar com um ArrayList , que o tipo de original que foi utilizado no WebMethod. Se não pretender utilizar os tipos de gerado, pode alterar os tipos gerados para tipos mais desejáveis. Para obter o tipo de objecto apropriado, pode abra o ficheiro que contém a classe proxy gerado, alterar manualmente o parâmetro do método gerado e volte tipos os tipos de objecto apropriado.

Gerar o código de proxy

No exemplo seguinte, o serviço Web XML tem o serviço Web método com o seguinte protótipo:
string DummyMethod(System.Collections.ArrayList intList)
				
pode utilizar Wsdl.exe para gerar o ficheiro de origem do proxy.

Modificar manualmente o código

  1. Abra o ficheiro de origem do proxy num 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);
            }
    					

Mais informações

Serviços Web XML serializar objectos para XML e anular a serialização de XML para objectos. Geralmente, um objecto de um determinado tipo pode ser serializado e, em seguida, anular a serialização a outro objecto do mesmo tipo. No entanto, se utilizar tipos diferentes, este poderá não funcionar.



Referências

Para obter informações adicionais sobre como os tipos são serializados e anular a serialização, visite o seguinte Web site da Microsoft:
XML e serialização SOAP
http://msdn.microsoft.com/library/?url=/library/en-us/cpguide/html/cpconserialization.asp?frame=true


Propriedades

Artigo: 326790 - Última revisão: 28 de abril de 2003 - Revisão: 4.1
A informação contida neste artigo aplica-se a:
  • Microsoft Web Services (included with the .NET Framework) 1.0
  • Microsoft Web Services Enhancements for Microsoft .NET 1.1
Palavras-chave: 
kbmt kbhowtomaster KB326790 KbMtpt
Traduçã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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 326790
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com