J'essaie d'enregistrer plusieurs instances de la même classe de sorte que lorsque j'injecte un énumérable de cette classe, je récupère toutes les instances.C# Unity Dependency Injection, comment puis-je récupérer une énumération d'instances?
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
}
}
Jusqu'à présent, j'ai:
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;
}
}
Quelqu'un peut-il me montrer comment faire cela?
On dirait une chose étrange à faire, mais cela ne vous suffit d'ajouter ces 'ActionDialogType's à un tableau et' RegisterInstance' de ce tableau? – Crowcoder