Posso usar o Typed Factory Facility para retornar a implementação com base no parâmetro (enum)?

Não tenho certeza se isso é possível ou não.

Eu preciso retornar a implementação correta de um serviço com base em um valor de enum. Então, a implementação codificada à mão seria algo como:

public enum MyEnum
{
  One,
  Two
}    

public class MyFactory
{
  public ITypeIWantToCreate Create(MyEnum type)
  {
    switch (type)
    {
       case MyEnum.One
           return new TypeIWantToCreate1();
           break;
       case MyEnum.Two
           return new TypeIWantToCreate2();
           break;
       default:
           return null;       
    }    
  }
}

As implementações que são retornadas têm dependências adicionais que precisarão ser injetadas através do contêiner, portanto, uma fábrica de laminados manuais não funcionará.

Isso é possível e, em caso afirmativo, como seria o registro?

questionAnswers(2)

yourAnswerToTheQuestion