0

谁能帮我解决这个问题?我正在使用 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)
    {

    }

该事件在模块本身中被触发,但由于某种原因,该事件没有被触发或监听器无法正常工作。非常感谢您的帮助。

4

1 回答 1

1

正常事件在 MEF 中不起作用,我使用了对我有用的事件聚合器

于 2013-05-26T20:47:01.510 回答