新しい WCF サービスをいくつか開発した後に、そのサービスをスクリプトまたは Visual Basic 6.0 アプリケーションから呼び出せるようにする必要が生じる場合があります。 1 つの方法としては、WCF クライアント アセンブリを生成し、そのアセンブリを COM に登録し、GAC にインストールした後、Visual Basic コードから COM 型を参照する方法があります。 アプリケーションを配布するときに、WCF クライアント アセンブリも配信する必要があります。 次にユーザーは COM を使用して WCF クライアント アセンブリを登録し、それを GAC に配置する必要があります。 WCF COM Interop でも、WCF クライアント アセンブリに依存しない同じサービス呼び出しを作成できます。 WCF モニカーを使用すれば、サービスに関する型情報を抽出するためにサービス モニカーで使用されるメタデータ交換 (Mex) エンドポイント URI を指定することにより、必要な WCF サービスを任意の COM 互換言語 (Visual Basic、VBScript、Visual Basic for Applications (VBA) など) から呼び出すことができます。 ここでは、Mex エンドポイントを指定する WCF モニカーを使用して、WCF の入門サンプルを呼び出す方法を説明します。
Note
WCF クライアント アセンブリで定義された型は、実際にインスタンス化されることはありません。 アセンブリはメタデータにのみ使用されます。
Mex アドレスを使うサービス モニカーの使用
入門サンプルを構築し、ブラウザーを使用してその URL (
http://localhost/ServiceModelSamples/Service.svc
) を参照し、サービスが動作していることを確認します。Visual Basic スクリプトまたは Visual Basic アプリケーションを作成し、次のコードを記述します。
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)
作成した Visual Basic アプリケーションまたはスクリプトを実行します。
Note
モニカーがサービスのメタデータを読み取るには、呼び出すサービスで、Mex エンドポイントが公開されている必要があります。 詳細については、「方法: 構成ファイルを使用してサービスのメタデータを公開する」を参照してください。
Note
モニカーの形式に誤りがある場合、またはサービスが使用できない場合、
GetObject
を呼び出すと、"構文が無効です" というエラーが返されます。このエラーが発生した場合は、使用しているモニカーが正しく、サービスが使用可能であることを確認してください。