我是MEF的新手,使用构造函数注入时遇到了一些麻烦。
我有这个接口IModuleInfo
if not CompareText(MD5Comp,GetMD5OfFile(ExpandConstant('{app}\cg.npa')))=0
有这个抽象的课程:
public interface IModuleInfo
{
string Name { get; set; }
}
这是其中一个模块的类:
[InheritedExport(typeof(IModuleInfo))]
public abstract class ModuleInfo : IModuleInfo
{
public string Name { get; set; }
}
这是我的控制者:
public class InviteModuleInfo : ModuleInfo
{
}
但是在运行我的应用程序时,这是我得到的错误:
尝试创建类型的控制器时发生错误 'TestWeb.Controllers.HomeController'。确保控制器 有一个无参数的公共构造函数。
这是我的控制器工厂:
[Export]
[PartCreationPolicy(CreationPolicy.NonShared)]
public class HomeController : Controller
{
IEnumerable<IModuleInfo> _modules;
[ImportingConstructor]
public HomeController(IEnumerable<IModuleInfo> modules)
{
this._modules = modules;
}
}
不确定我错过了什么。 :(