これが可能かどうかわからない。
列挙値に基づいてサービスの正しい実装を返す必要があります。したがって、手作業でコーディングされた実装は次のようになります。
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;
}
}
}
返される実装には追加の依存関係があり、コンテナーを介して注入する必要があるため、手動でロールされたファクトリは機能しません。
これは可能ですか?もしそうなら、登録はどのようになりますか?