Unity Registra Para Uma Interface Multiple Object e Tell Unity Onde Injetá-los

Oi, eu tenho tido problemas para tentar dizer ao Unity que, para uma interface, se tiver várias implementações, quero que elas sejam injetadas em classes diferentes. Aqui está o que quero dizer:

Digamos que eu tenha uma interfaceIProductCatalogService e duas implementaçõesProductCatalog : IProductCatalogService eProductCatalogService : IProductCatalogService.

Como eu poderia dizer ao Unity que para Classe A eu quero no meu construtor ter passado uma instância do tipoProductCatalog e para a classeB Eu quero uma instância deProductCatalogService.

Estou usando o Unity em um projeto ASP.NET Web API e defini o resolvedor noGLobalConfiguration.

Para simples registros de 1 para 1, tudo funciona.

Aqui está o que eu tentei, mas parece não funcionar:

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)));
    }
}

NoDependencyServiceModel, From é a interface,To é o objeto para a bruxa que eu quero instanciar eForClasses são o tipo para o qual eu quero usar oTo Objeto.

questionAnswers(1)

yourAnswerToTheQuestion