0

誰でもこの問題を解決できますか? 私は MEF フレームワークを使用していますが、イベントを介して「モジュール」とプラグインに通信したいと考えています。

この 2 つの部分の間に共有インターフェイスを作成しました。

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 では機能しません。代わりに Event Aggregator を使用しました。

于 2013-05-26T20:47:01.510 に答える