我使用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