事件与mef连接
本文关键字:连接 mef 事件 | 更新日期: 2023-09-27 18:13:22
谁能帮我解决这个问题?我正在使用MEF框架,但我想通过"模块"与插件的事件进行通信。
我在这两个部分之间创建了一个共享接口
public class BaseModule
{
public event EventHandler<FeedBackArguments> SendFeedBack;
public event EventHandler<ResultArguments> SendResult;
public void InvokeFeedback(string message) {
if (SendFeedBack != null)
SendFeedBack(this, new FeedBackArguments{FeedbackString = message, FeedbackDate = DateTime. public void InvokeResult(bool passed, string resultMessage, string test) {
if (SendResult != null)
SendResult(this, new ResultArguments { Resultstring = resultMessage, Passed = passed, PassedTime = DateTime.Now, Teststring = test});
}
}
这是我的模块:
[Export(typeof(IModule))]
public class Tests : BaseModule, IModule
{
public void RememberDescription()
{
InvokeResult(true, "Please remember to upload a description","Rememberdescription");
}
我想像这样导入模块:
[Import(typeof(IModule))]
public IModule MEF;
public void RunTests(string list)
{
AggregateCatalog catalog = new AggregateCatalog();
catalog.Catalogs.Add(new DirectoryCatalog(folderlocator));
try
{
CompositionContainer container = new CompositionContainer(catalog);
container.ComposeParts(this);
MEF.SendResult += MEF_SendResult;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
void MEF_SendFeedBack(object sender, FeedBackArguments e)
{
}
void MEF_SendResult(object sender, ResultArguments e)
{
}
事件在模块本身被触发,但是由于某些原因事件没有被触发或者监听器没有正常工作。非常感谢您的帮助
正常事件在MEF中不起作用,我使用事件聚合器代替它为我工作