MEF允许您通过使用ImportMany
属性导入多个零件。它如何确定它检索相关输出的顺序,并将它们添加到您正在填充的可枚举项中?例如,我将如何导入需要按特定顺序触发的多个IRule?我能想到的唯一的办法就是在iRule中的OrderValue财产和手动排序:MEF如何确定进口订单?
public class Engine
{
[ImportMany]
public IEnumerable<IRule> Rules { get; set; }
public void Run()
{
// ...
// Initialise MEF
// ...
//
// Do I need to manually order Rules here?
//
foreach (IRule rule in Rules)
{
// Must execute in a specific order
rule.Execute();
}
}
}
我觉得你的假设是正确的 - 这似乎有点MEF的目的是要解决的问题之外。 – GraemeF 2009-11-20 13:25:51