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