0
아무도이 문제를 해결할 수 있습니까? 저는 MEF 프레임 워크를 사용하고 있습니다 만, 이벤트를 통해 "모듈"과 플러그인으로 통신하고 싶습니다.mef로 이벤트 배선
[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)
{
}
을
나는 그 두 부분 사이에 공유 인터페이스는이 내 모듈
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});
}
}
되어 만든
모듈 자체에서 이벤트가 트리거되지만 어떤 이유로 인해 이벤트가 실행되지 않거나 목록이 실행되지 않습니다. ener가 제대로 작동하지 않습니다. 도움말은 대단히 감사하겠습니다. 모든 코드에서, 최대 보이고있다;
근무하는 사용 당신이 거기에 있기를 원하는 와트 이상). 그것을 고쳐 주시면 다시 보겠습니다. –
Hello @FrancoisNel, 맞습니다.이 문제와 관련이없는 코드를 수정했습니다. 보이드 MEF_SendFeedBack() 및 MEF_SendResult()에 관해서는 ... 이벤트에 문제가있어 "호출"되지 않기 때문에 아직 채워지지 않았기 때문에 결코 트리거되지 않은 것 같습니다 – machie27
첫 번째 코드를보십시오 블록. 두 개의 if 문이 서로 뒤 따르는 것이 이해가되지 않습니다. 하지만 물어 봅시다 : 당신은 "모듈 자체에서 이벤트가 발생했다"라고 말했지만, 어떻게 (언제) 그리고 언제 트리거가 발생합니까? 이벤트 처리기가 연결되기 전에 트리거되지 않습니까? –