La documentation indique que Autofac soutient génériques ouverts et je suis en mesure d'enregistrer et de résoudre dans un cas de base comme ceci:Autofac avec Open Generics et type spécifié au Runtime
Inscription:
builder.RegisterGeneric(typeof(PassThroughFlattener<>))
.As(typeof(IFlattener<>))
.ContainerScoped();
Resolve:
var flattener = _container.Resolve<IFlattener<Address>>();
Le code ci-dessus fonctionne très bien. Cependant, en supposant que je ne saurai pas le type prévu à IFlattener jusqu'à l'exécution, je veux faire quelque chose comme ceci:
object input = new Address();
var flattener = (IFlattener)_container.Resolve(typeof(IFlattener<>), new TypedParameter(typeof(IFlattener<>), input.GetType()));
Est-ce possible avec AutoFac? J'ai eu l'idée de ce qui suit à l'aide StructureMap:
http://structuremap.sourceforge.net/Generics.htm
J'essaie d'atteindre le même objectif décrit dans cet article.
Merci pour la réponse rapide, ça marche! –