誰でもこの問題を解決できますか? 私は 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)
{
}
イベントはモジュール自体でトリガーされますが、何らかの理由でイベントが発生しないか、リスナーが正常に機能しません。助けていただければ幸いです。