MEF позволяет импортировать несколько частей с помощью атрибута ImportMany
. Как он определяет порядок, в котором он извлекает соответствующий экспорт, и добавляет их к перечислимому вами населению? Например, как мне импортировать несколько IRules, которые должны были запускаться в определенном порядке? Единственный способ, которым я могу думать, - иметь свойство OrderValue в IRule и отсортировать вручную:
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();
}
}
}