Bonjour,

J'aimerai savoir si certains d'entre vous utilisant Unity savent comment faire des "static factory generic"

En gros j'ai une classe "InstanceCreator" (qui vient d'un framework qui injecte du code) et cette saleté utilise des methodes static sur un type généric... Assez chiant pour les injections.
Si je créer une classe "Accessor<>" et que je veux l'instancier pour ce framework je dois faire

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Accessor<Class1> monObjet = InstanceCreator<Accessor<Class1>>.CreateInstance();
Via les static factory de unity je peux enregistrer ce comportement dans le container de cette façon :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
IUnityContainer container = new UnityContainer();
container.AddNewExtension<StaticFactoryExtension>();
container.Configure<IStaticFactoryConfiguration>()
    .RegisterFactory<Accessor<Class1>>
        (new FactoryDelegate(c => InstanceCreator<Accessor<Class1>>.CreateInstance()));
Super ! Sauf que des "Class1" j'en ai vraiment beaucoup et comme le code est toujours le même sauf le generic qui change j'aimerai pouvoir en une ligne enregistrer ce comportement, quelque chose dans ce style la :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
IUnityContainer container = new UnityContainer();
container.AddNewExtension<StaticFactoryExtension>();
container.Configure<IStaticFactoryConfiguration>()
    .RegisterFactory(typeof(Accessor), new FactoryDelegate<T>(c => InstanceCreator<Accessor<T>>.CreateInstance()));
(c'est syntaxiquement incorrect mais c'est pour donner une idée du but)

Si quelqu'un a une idée, je suis open

Merci