我正在开发一个带有 jquery、WCF 和其他东西的 ASP.net 自定义服务器控件。我想为使用它的开发人员提供在控件的公开公开属性之一中指定成功函数(在控件成功完成任务时调用)的灵活性。我是活动和代表的新手,有人可以告诉我应该怎么做吗?指定公共财产的类型?在属性中设置函数名称(在标记或/和代码中,作为字符串或任何其他类型)?从控件调用函数/委托?
一些示例代码将是首选(如果我说一些愚蠢的话,请备用)
我正在开发一个带有 jquery、WCF 和其他东西的 ASP.net 自定义服务器控件。我想为使用它的开发人员提供在控件的公开公开属性之一中指定成功函数(在控件成功完成任务时调用)的灵活性。我是活动和代表的新手,有人可以告诉我应该怎么做吗?指定公共财产的类型?在属性中设置函数名称(在标记或/和代码中,作为字符串或任何其他类型)?从控件调用函数/委托?
一些示例代码将是首选(如果我说一些愚蠢的话,请备用)
这是事件的标准模式:
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 的其余部分集成的事件的详细信息。