Como: usar um moniker de serviço com contratos de intercâmbio de metadados
Depois de desenvolver alguns novos serviços do WCF, você pode decidir que quer chamar esses serviços de um script ou de um aplicativo do Visual Basic 6.0. Um método seria gerar um assembly de cliente do WCF, registrar o assembly com COM, instalar o assembly no GAC e, em seguida, fazer referência aos tipos COM do código do Visual Basic. Ao distribuir o aplicativo, você também precisará distribuir o assembly do cliente do WCF. Em seguida, o usuário precisará registrar o assembly de cliente do WCF com COM e colocá-lo no GAC. A interoperabilidade de COM do WCF também permite fazer as mesmas chamadas de serviço sem depender de um assembly de cliente do WCF. O moniker WCF permite chamar qualquer serviço WCF de qualquer linguagem compatível com COM (Visual Basic, VBScript, Visual Basic for Applications (VBA) 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 introdução do WCF usando um moniker do WCF que especifica um ponto de extremidade Mex.
Observação
Os tipos definidos pelo assembly de cliente do 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é a sua URL (
http://localhost/ServiceModelSamples/Service.svc
) para garantir que o serviço esteja funcionando.Crie um script do Visual Basic ou um aplicativo do Visual Basic que contenha 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 do Visual Basic.
Observação
O serviço que você está chamando precisa expor um ponto de extremidade Mex para que o moniker possa ler os metadados do serviço. Para mais informações, confira Como publicar metadados para um serviço usando um arquivo de configuração.
Observação
Se o moniker estiver malformado ou se o serviço não estiver disponível, a chamada retornará um erro
GetObject
com "Sintaxe inválida". Se você receber esse erro, verifique se o moniker usado está correto e se o serviço está disponível.