.NET插件开发
我正在编写一个程序,允许开发人员为它编写插件,我希望开发人员能够钩住程序中发生的事件 我的代码没有编译,因为我无法在IMyProgram接口中声明委托 所以我想这更像是一个设计问题。如何将接口传递给加载项,以便加载项可以挂接程序事件.NET插件开发,.net,add-in,.net,Add In,我正在编写一个程序,允许开发人员为它编写插件,我希望开发人员能够钩住程序中发生的事件 我的代码没有编译,因为我无法在IMyProgram接口中声明委托 所以我想这更像是一个设计问题。如何将接口传递给加载项,以便加载项可以挂接程序事件 [AddInContract] public interface IMyProgramAddInContract : IContract { /// <summary> /// Initializes AddIn
[AddInContract]
public interface IMyProgramAddInContract : IContract {
/// <summary>
/// Initializes AddIn
/// </summary>
void Init(IMyProgram instance);
System.Drawing.Image AddInIcon { get; }
String DisplayName { get; }
String Description { get; }
}
[AddInContract]
public interface IMyProgram : IContract {
public delegate EventHandler EmailEventHandler(object sender, EmailEventArgs args);
public event EmailEventHandler BeforeCheck;
public event EmailEventHandler AfterCheck;
public event EmailEventHandler EmailDownloaded;
public event EmailEventHandler OnProcessMessage;
}
[AddInBase]
public class EmailEventArgs : EventArgs {
public override string ToString() {
return "todo";
}
}
IMyProgram正在为委托和事件声明公共范围。删除它们,我认为您将能够编译IMyProgram正在为委托和事件声明公共范围。删除它们,我认为您将能够编译如果您希望为您的加载项实现事件模型,那么您应该使用委托而不是接口-查看MSDN中的此简介,看看它是否清除了任何内容:
如果您希望为您的加载项实现事件模型,那么您应该使用委托而不是接口-查看MSDN中的此宣传语,看看它是否清除了任何内容:
问题已经解决了
我不知道委托可以在命名空间级别声明,而不在类中。问题已经解决 我不知道委托可以在命名空间级别声明而不在类中