MEF cho phép bạn nhập nhiều phần thông qua việc sử dụng thuộc tính ImportMany
. Làm thế nào để nó xác định thứ tự trong đó nó lấy các xuất khẩu có liên quan và thêm chúng vào số đếm bạn đang cư trú? Ví dụ, làm thế nào tôi sẽ nhập nhiều IRules mà phải bắn theo một thứ tự cụ thể? Cách duy nhất tôi có thể nghĩ đến là phải có một tài sản OrderValue trong IRule và sắp xếp bằng tay:Làm thế nào để xác định thứ tự nhập khẩu của 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();
}
}
}
Tôi nghĩ rằng giả định của bạn là đúng - có vẻ như một chút bên ngoài của vấn đề MEF được thiết kế để giải quyết. – GraemeF