Unity: зарегистрировать экземпляр во время выполнения - PullRequest
0 голосов
/ 29 сентября 2011

Я не могу понять это.У меня есть компонент, который зависит от службы.Служба имеет URL-адрес, который известен только во время выполнения.Как я могу получить экземпляр Компонента, используя контейнер?

public interface IService
{
    Uri Url { get; set; }
}

public class Service : IService
{
    public Uri Url { get; set; }
}

public class Component : IComponent
{
    public Component(IService service) {... }
}

Я могу думать только об использовании Unity как Service Locator, чтобы получить контейнер по требованию и зарегистрировать мой экземпляр времени выполнения:

var service = new Service { Url = new Uri("http://...") };
Container.Resolve<IUnityContainer>().RegisterInstance<IService>(service);
var component = Container.Resolve<IComponent>();

Но я действительно хочу избежать SL.Есть ли другой способ?

...