委托:在自定义服务器控件中指定要调用的方法(或其名称)
本文关键字:方法 调用 自定义 服务器控件 委托 | 更新日期: 2023-09-27 18:05:06
我正在做一个ASP.net自定义服务器控件,使用jquery, WCF和其他东西。我希望为使用它的开发人员提供在控件的公开属性之一中指定on success函数(当控件成功完成任务时调用)的灵活性。我是新的活动和代表,谁能给我一个主意,我应该怎么做?指定公共属性的类型?在属性中设置函数名(在标记或/和代码中,作为字符串或任何其他类型)?从控件调用函数/委托?
最好是一些示例代码(如果我说了一些愚蠢的东西请原谅)
事件的标准模式:
class YourControl {
public event EventHandler Success;
protected void OnSuccess() {
if(this.Success != null)
this.Success(this, EventArgs.Empty);
}
}
Success是EventHandler类型,可以很好地与其他事件集成,从而允许通用事件处理程序(例如通用日志工具)订阅。通过调用OnSuccess(),可以很容易地在控件及其子控件中的任何地方触发事件。
您还可以自定义事件,添加更多信息:
class YourControl {
public class YourControlEventArgs: EventArgs {
public TimeSpan Elapsed;
public YourControlEventArgs(TimeSpan t) {
this.Elapsed = t;
}
}
public event EventHandler<YourControlEventArgs> Success;
protected void OnSuccess(TimeSpan t) {
if(this.Success != null)
this.Success(this, new YourControlEventArgs(t));
}
}
一个特定的类保存事件的细节,扩展简单的EventArgs以与。net的其余部分集成,如上面所说。