CompositionContractMistachException
在 .NET 4.0 上的 MEF 中使用自定义属性类时,我得到了一个。
Unable to create an instance of the Metadata view '(snip).ModuleExportAttribute, (snip), Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' because a constructor could not be selected. Ensure that the type implements a constructor which takes an argument of type IDictionary<string, object>.
这是我的ModuleExportAttribute
课,没什么特别的:
[MetadataAttribute]
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
public sealed class ModuleExportAttribute : ExportAttribute
{
public ModuleExportAttribute(string name) : base(typeof(IModule))
{
this.Name = name;
}
public string Name { get; private set; }
}
用法是这样的:
[ModuleExport("MyModule")]
public class MyModule : IModule
{
...
}
添加要求的构造函数后,异常消失。
但是,我找不到任何说明此要求的参考资料。相反,我看到许多使用自定义属性类而没有此类构造函数的示例和博客文章。我在这里错过了什么吗?