Единство регистрации для одного интерфейса нескольких объектов и сообщить Unity, где их вводить

Привет, у меня возникли проблемы при попытке сказать Unity, что для интерфейса, если у него есть несколько реализаций, я хочу, чтобы он вставлял их в разные классы. Вот что я имею в виду:

Допустим, у меня есть интерфейсIProductCatalogService и две реализацииProductCatalog : IProductCatalogService а такжеProductCatalogService : IProductCatalogService.

Как бы я сказал Unity, что для класса A я хочу, чтобы в моем конструкторе был передан экземпляр типаProductCatalog и для классаB Я хочу экземплярProductCatalogService.

Я использую Unity в проекте ASP.NET Web API, и я установил преобразователь вGLobalConfiguration.

Для простой регистрации 1 к 1 все работает.

Вот что я пробовал, но это не похоже на работу:

public class DependencyServiceModel
{
    public Type From { get; set; }
    public Type To { get; set; }
    public IEnumerable<Type> ForClasses { get; set; }
}

public void RegisterTypeForSpecificClasses(DependencyServiceModel dependencyService)
{
    foreach (var forClass in dependencyService.ForClasses)
    {
        string uniquename = Guid.NewGuid().ToString();

        Container.RegisterType(dependencyService.From, 
            dependencyService.To, uniquename);

        Container.RegisterType(forClass, uniquename, 
            new InjectionConstructor(
                new ResolvedParameter(dependencyService.To)));
    }
}

вDependencyServiceModel, From это интерфейс,To это объект для ведьмы, который я хочу создать иForClasses Тип, для которого я хочу использоватьTo Объект.

Ответы на вопрос(1)

Ваш ответ на вопрос