同じクラスの複数のインスタンスを登録しようとしています。そのクラスの列挙型を挿入すると、すべてのインスタンスが取得されるようになります。C#Unity Dependency Injectionでは、インスタンスの列挙型を取得するにはどうすればよいですか?
public class ActionDialogType
{
public Type Type { get; set; }
public string Name { get; set; }
}
public class ActionDialogTypeUser
{
private IEnumerable<ActionDialogType> _types;
public ActionDialogTypeUser(IEnumerable<ActionDialogType> types)
{
_types = types
}
public void DoSomethingWithTypes()
{
// Do Something with types
}
}
は、これまでのところ私が持っている:
public class UnityConfig
{
public IUnityContainer Register()
{
UnityContainer container = new UnityContainer();
ActionDialogType actionDialogType1 = new ActionDialogType
{
Name = "Something",
Type = typeof(Something)
};
container.RegisterInstance<IActionDialogType>(actionDialogType1, new ContainerControlledLifetimeManager());
ActionDialogType actionDialogType2 = new ActionDialogType
{
Name = "SomethingElse",
Type = typeof(SomethingElse)
};
container.RegisterInstance<ActionDialogType>(actionDialogType2, new ContainerControlledLifetimeManager());
container.RegisterType<IEnumerable<ActionDialogType>, ActionDialogType[]>();
return container;
}
}
誰もがこれを行う方法を私を見ることができますか?
を行うには奇妙なことのように思えるが、あなただけの配列にそれらの 'ActionDialogType'sを追加し、その配列の' RegisterInstance'ではないでしょうか? – Crowcoder