委托:在自定义服务器控件中指定要调用的方法(或其名称)

本文关键字:方法 调用 自定义 服务器控件 委托 | 更新日期: 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的其余部分集成,如上面所说。