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