Как MEF определяет порядок его импорта?

MEF позволяет импортировать несколько деталей с помощьюImportMany приписывать. Как он определяет порядок, в котором он получает соответствующие экспорты и добавляет их в перечисляемый вами список? Например, как мне импортировать несколько IRules, которые должны были запускаться в определенном порядке? Единственный способ, о котором я могу подумать, - это иметь свойство OrderValue в IRule и сортировать вручную:

public class Engine
{
  [ImportMany]
  public IEnumerable 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();
    }
  }
}

Ответы на вопрос(3)

Ваш ответ на вопрос