指定的文檔指出Autofac支持開放泛型和我能夠像這樣註冊和解析的基本情況:Autofac與開放式泛型和類型在運行時
報名:
builder.RegisterGeneric(typeof(PassThroughFlattener<>))
.As(typeof(IFlattener<>))
.ContainerScoped();
解決:
var flattener = _container.Resolve<IFlattener<Address>>();
上面的代碼工作得很好。但是,假設我不知道提供給IFlattener類型,直到運行時,我想要做這樣的事情:
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
我試圖實現在這篇文章中列出的相同目標。
感謝您的快速響應,該工作! – 2009-10-06 12:54:05