Como usar um moniker de serviço com contratos de troca de metadados
Depois de desenvolver alguns novos serviços WCF, você pode decidir que você deseja ser capaz de chamar esses serviços de um script ou um aplicativo Visual Basic 6.0. Um método seria gerar um assembly de cliente WCF, registrar o assembly com COM, instalar o assembly no GAC e, em seguida, fazer referência aos tipos COM do seu código do Visual Basic. Ao distribuir o aplicativo, você terá que distribuir o assembly do cliente WCF também. O usuário terá então que registrar o assembly do cliente WCF com COM e colocá-lo no GAC. WCF COM Interop também permite que você faça as mesmas chamadas de serviço sem depender de um assembly de cliente WCF. O moniker WCF permite que você chame qualquer serviço WCF de qualquer linguagem compatível com COM (Visual Basic, VBScript, Visual Basic for Applications (VBA) e assim por diante) especificando um URI de ponto de extremidade de troca de metadados (Mex) que o moniker de serviço usa para extrair informações de tipo sobre o serviço. Este tópico descreve como chamar o exemplo de WCF de Introdução usando um moniker WCF que especifica um ponto de extremidade Mex.
Nota
Os tipos definidos pelo assembly do cliente WCF nunca são realmente instanciados. O assembly é usado apenas para metadados.
Usando o moniker de serviço com um endereço Mex
Crie o exemplo de Introdução e use um navegador para navegar até sua URL (
http://localhost/ServiceModelSamples/Service.svc
) para garantir que o serviço esteja funcionando.Crie um script Visual Basic ou aplicativo Visual Basic que contém o seguinte código:
monString = "service:mexaddress=http://localhost/ServiceModelSamples/Service.svc/MEX" monString = monString + ", address=http://localhost/ServiceModelSamples/Service.svc" monString = monString + ", contract=ICalculator, contractNamespace=http://Microsoft.ServiceModel.Samples" monString = monString + ", binding=WSHttpBinding_ICalculator, bindingNamespace=http://Microsoft.ServiceModel.Samples" Set calc = GetObject(monString) MsgBox calc.Add(3, 4)
Execute o aplicativo ou script Visual Basic.
Nota
O serviço que você está chamando deve expor um ponto de extremidade Mex para que o moniker possa ler os metadados do serviço. Para obter mais informações, consulte Como publicar metadados para um serviço usando um arquivo de configuração.
Nota
Se o moniker estiver malformado ou se o serviço não estiver disponível, a chamada para
GetObject
retornará um erro dizendo "Sintaxe inválida". Se você receber esse erro, verifique se o moniker que você está usando está correto e se o serviço está disponível.