複数の WCF サービスを使用する必要がある Silverlight アプリケーションがあります。サービスのエンドポイント (url) は、Silverlight アプリケーションまたは構成ファイル内にハードコーディングできません。それらは、それ自体が WCF サービスである Service Registry から照会する必要があります。問題は、実際のサービス プロキシのインスタンスを作成する前に、非同期呼び出しを使用してサービス エンドポイントをクエリする必要があることです。応答を待つか、実際のサービスへの呼び出しをブロックする良い方法が思いつきません。Silverlight アプリケーションで Service Registry / Service Locator パターンを使用する最良の方法は何ですか?
var registry = new ServiceRegistryClient("http://localhost/ServiceRegistry.svc");
string url;
registry.GetServiceCompleted += (s, e) => url = e.Result;
registry.GetServiceAsync("MyService");
// now I want to create MyService, but I must wait somehow until url is returned
var myService = new MyServiceClient(url);
myService.DoSomethingAsync();