J'ai trois déclaration de classe comme ci-dessusest-il un moyen d'interposer le processus d'instanciation de autofac?
[Plug("hello")]
public class Plug1 : IPlug{}
[Plug("hello")]
public class Plug2 : IPlug{}
[Plug("world")]
public class Plug3 : IPlug{}
Quand j'utilise container.Resolve<IEnumerable<IPlug>>()
pour résoudre, je reçois toutes les instances qui implémente l'interface IPlug
,, je veux cependant obtenir le premier et le deuxième (ou par le monde, qui l'instance a été marquée par l'attribut Plug("hello")
).
Y a-t-il un moyen de l'atteindre?
Je voudrais éviter d'utiliser
container.Resolve<IEnumerable<IPlug>>()
.Where(t => t.FirstAttribute<Plug>() != null
&& t.FirstAttribute<Plug>().Id == "Hello")
Je me sens toujours ce n'est pas la meilleure pratique en raison de la performance.
merci. c'est un bon choix. – linus