事件与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连接

正常事件在MEF中不起作用,我使用事件聚合器代替它为我工作