我使用Autofac開始,要掃描的某些DLL的,並得到Autofac內他們註冊一些類。Autofac掃描組件對某些類類型
,我很感興趣,所有類從PluginBase類繼承,但下面的代碼似乎並沒有被registerting他們。誰能幫忙?
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
var builder = new ContainerBuilder();
builder.RegisterAssemblyTypes(assemblies)
.Where(t => t.BaseType == typeof(PluginBase))
.AsImplementedInterfaces()
.AsSelf();
var container = builder.Build();
var pluginClasses = container.Resolve<IEnumerable<PluginBase>>();
//pluginClasses is empty!!!!
這工作!我可以添加AsImplementedInterfaces較新的類那是否實現接口? – Jon 2012-02-06 12:02:32
我認爲這兩個調用應該一起工作。然後類型獲得我註冊ts基本類型及其實現的所有接口。 – Jehof 2012-02-06 12:05:35
糟糕,只是重新閱讀我寫的內容,沒有任何意義。如果我有一個從PluginBase繼承的類,並且有一個接口的構造函數參數,那麼即使使用AsImplementedInterfaces也不行。我是否會進行新的生成器註冊,還是可以修改當前的代碼? – Jon 2012-02-06 12:10:19