0
我試圖導出所有實現了IJob
接口的類,同時還在各個類級別傳遞元數據。我已經試過:具有繼承導出的元數據
出口:
[InheritedExport(typeof(IJob))]
public interface IJob
{
int Run();
}
導入:
[ImportMany]
public IEnumerable<Lazy<IJob, IJobMetaData>> Jobs { get; set; }
實現:
[IgnoreJob(false)]
public class MyJob : IJob
{
public int Run()
{
return 5;
}
}
屬性設置:
[MetadataAttribute]
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
public class IgnoreJobAttribute : ExportAttribute, IJobMetaData
{
public IgnoreJobAttribute(bool ignore)
: base(typeof(IJobMetaData))
{
Ignore = ignore;
}
[DefaultValue(true)]
public bool Ignore { get; set; }
}
上述
不不通過我的元數據,但如果我刪除InheritedExport
屬性並添加Export
屬性對個人實施IJob的正常工作......
可能的重複:http://stackoverflow.com/questions/6570930/how-to-use-mef-inherited-export-metadata – 2014-09-10 16:44:28
不幸的不是!他們至少有*一些*元數據,我沒有。 – InContext 2014-09-10 16:52:40