SetRenderMethodDelegate 方法

今天看代码发现一个有趣的方法。
System.Web.UI.Control 类的 SetRenderMethodDelegate()

这个方法允许控件接受一个委托来定制自身的 Render 行为,这样,在子控件里就可以重新定义父控件的 Render 方法,很灵活。IronPython for ASP.NET 的实现就利用到这个特性了。
例子:
public class SnippetControl: BaseCodeControl {
    
protected override void OnInit(EventArgs e) {
        
base.OnInit(e);
        
// 修改其父控件的 Render 方法
        this.Parent.SetRenderMethodDelegate(new System.Web.UI.RenderMethod(SnippetControl.RenderMethod));
    }

    
internal static void RenderMethod(HtmlTextWriter writer, Control container){
        
// ....
    }
}
原文地址:https://www.cnblogs.com/RChen/p/SetRenderMethodDelegate.html