Tôi đang tạo một ứng dụng nhập nhiều plugin. Tôi cần khả năng thực hiện các hàm được triển khai trong mỗi plugin. Ví dụ, tôi cần phải làm một cái gì đó như thế này.Làm thế nào để xuất khẩu và nhập khẩu các chức năng và thực hiện chúng với MEF?
/////////////////////////////////////////////////////////////////////////////////
MainApp:
[ImportMany(?)]
public IEnumerable<Lazy<?>> PluginFunctions1 { get; set; }
[ImportMany(?)]
public IEnumerable<Lazy<?>> PluginFunctions2 { get; set; }
foreach (f1 in PluginFunctions1)
{
f1(); // execute Function1 from each plugin
}
foreach (f2 in PluginFunctions2)
{
string result = f2(val); // execute Function2 from each plugin
}
/////////////////////////////////////////////////////////////////////////////////
Plugin:
[export(?)]
public void Function1()
{
}
[export(?)]
public string Function2(string value)
{
return result;
}
/////////////////////////////////////////////////////////////////////////////////
Vấn đề là tôi không chắc chắn cách xác định nhập & xuất và cách thực hiện chính xác chức năng.
Không nên bạn sử dụng ImportMany? '[ImportMany (" FunctionType ")]' – mnn
@mnn Cảm ơn, tôi đã cập nhật mã –