【发布时间】:2020-03-22 09:16:19
【问题描述】:
在我的应用程序中,我有一个接口 IEncoder,它具有事件 EncoderCaller。
public interface IEncoder
{
event EncoderCaller EncoderCalled;
}
public delegate void EncoderCaller(object Source, EventArgs args);
public class Video
{
public string Title { get; set; }
}
public class VideoEventArgs : EventArgs
{
public Video xVideo { get; set; }
}
public class DetectionAction : IEncoder
{
public event EncoderCaller EncoderCalled;
public void Encode(Video video)
{
//some logic to encode video
OnVideoEncoded();
}
protected virtual void OnVideoEncoded()
{
if (EncoderCalled != null)
EncoderCalled(this, EventArgs.Empty);
}
}
public class Client1: IEncoder
{
}
我需要某种机制来共享合约,如果任何客户端都实现了该机制,那么该事件将触发我的类 DetectionAction 中的事件。
谁能告诉我,我在做正确的事吗?
如何实现?
【问题讨论】:
-
我不明白你的问题。您能否通过更多示例阐明需要做什么?
-
假设我有两个应用程序,应用程序 A 和应用程序 B。我想共享一个具有事件通知类型的合同,如果应用程序 B 实现该事件并且在该事件上应用程序 A 事件应该也得到提升。这是我正在努力实现的目标