Dokumentacja wskazuje, że Autofac wspiera otwarte rodzajowych i jestem w stanie zarejestrować i rozwiązać w podstawowej przypadku tak:Autofac z Open rodzajowych i typu określonego w Runtime
Rejestracja:
builder.RegisterGeneric(typeof(PassThroughFlattener<>))
.As(typeof(IFlattener<>))
.ContainerScoped();
Resolve:
var flattener = _container.Resolve<IFlattener<Address>>();
Powyższy kod działa dobrze. Jednak zakładając, że nie będzie znać rodzaj przekazywanych IFlattener aż wykonywania, chcę zrobić coś takiego:
object input = new Address();
var flattener = (IFlattener)_container.Resolve(typeof(IFlattener<>), new TypedParameter(typeof(IFlattener<>), input.GetType()));
Czy to możliwe AutoFac? Wpadłem na pomysł z poniższego przy użyciu StructureMap:
http://structuremap.sourceforge.net/Generics.htm
próbuję osiągnąć ten sam cel opisanej w tym artykule.
Dziękuję za szybką reakcję, która działa! –