【发布时间】:2010-12-04 03:30:21
【问题描述】:
文档指出 Autofac 支持开放泛型,我能够在这样的基本情况下注册和解析:
注册:
builder.RegisterGeneric(typeof(PassThroughFlattener<>))
.As(typeof(IFlattener<>))
.ContainerScoped();
解决:
var flattener = _container.Resolve<IFlattener<Address>>();
上面的代码工作得很好。但是,假设我直到运行时才知道提供给 IFlatener 的类型,我想做这样的事情:
object input = new Address();
var flattener = (IFlattener)_container.Resolve(typeof(IFlattener<>), new TypedParameter(typeof(IFlattener<>), input.GetType()));
AutoFac 可以做到这一点吗?我使用 StructureMap 从以下得到了这个想法:
http://structuremap.sourceforge.net/Generics.htm
我正在努力实现本文中概述的相同目标。
【问题讨论】:
标签: dependency-injection ioc-container autofac