Pergunta

Eu estou tentando criar um aplicativo que me permite executar um método especificado em tempo de execução em um webservice arbitrário (a URL da qual eu também vai fornecer em tempo de execução). Eu descobri como usar Type.InvokeMember para executar o método arbitrário, mas como faço para especificar o serviço web para consumir sem criar uma classe proxy.

Como posso chamar um webservice sem uma referência da web? que irá ajuda-me se eu já tiver o WSDL e somente a URL vai mudar, mas eu gostaria de ser capaz de chamar qualquer webservice e buscar o resultado.

Graças.

Foi útil?

Solução

Você deve dar uma olhada em Proxy Dinâmico para WCF (Sinto muito, mas eu consigo encontrar um link para ela agora) - é uma biblioteca que permite que você inspecione os serviços em tempo de execução (se eles publicam seus metadados) e também invocar métodos (não há necessidade de metadados para fazer isso).

Edit: na verdade, parece que há um projeto no CodePlex para fazer exatamente isso: SIF

Outras dicas

Para WCF, você precisa se quer ter a classe de proxy, ou a interface os implementos de serviços, por isso não é provável que você pode fazê-lo via WCF (WCF é infinitamente extensível, no entanto, portanto, pode haver uma maneira.

Você pode sempre apenas spin-se um objeto HttpWebRequest e fazer uma chamada de "old-school" ao serviço e analisar os resultados a si mesmo.

Você deve ser capaz de fazer a sua chamada apenas usando WebRequest . Você vai ter que formam o corpo do href="http://www.w3schools.com/SOAP/soap_syntax.asp" mensagem mesmo, mas isso não é muito difícil .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top