3
我在this question所示的類似的設置,並想知道如果我能代替我所有的代碼,使用反射來尋找某一類型的插件,然後做就可以了CreateInstance
與IOC容器,做一樣的東西:IOC容器可以替換CreateInstance反射代碼嗎?
builder.RegisterAssemblyTypes(typeof(MyType).Assembly)
我在this question所示的類似的設置,並想知道如果我能代替我所有的代碼,使用反射來尋找某一類型的插件,然後做就可以了CreateInstance
與IOC容器,做一樣的東西:IOC容器可以替換CreateInstance反射代碼嗎?
builder.RegisterAssemblyTypes(typeof(MyType).Assembly)
是的,你可以做這樣的事情:
builder.RegisterAssemblyTypes(typeof(MyType).Assembly).AsImplementedInterfaces();
什麼是AsImplementedInterfaces嗎?該項目具有遺留代碼,因此不會有具有接口的構造函數,並會具體實現一些接口。 – Jon 2012-02-05 19:32:46
從Autofac的文檔:*指定掃描程序集中的類型註冊爲提供其所有實現的接口。* – 2012-02-05 20:10:48
如果類沒有接口構造函數,它們會被忽略?只是想盡量減少影響! – Jon 2012-02-05 20:19:16