У меня есть приложение silverlight, которое должно использовать несколько служб WCF. Конечные точки (URL) служб не могут быть жестко закодированы в приложении silverlight или в файле конфигурации. Они должны быть запрошены из реестра служб, который сам по себе является службой WCF.
Проблема в том, что мне нужно использовать асинхронный вызов для запроса конечной точки службы, прежде чем я смогу создать экземпляр реального прокси службы. Я не могу придумать хороший способ дождаться ответа или заблокировать вызовы в реальном сервисе.
Как лучше всего использовать шаблон Service Registry / Service Locator из приложения Silverlight?
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();