C# 重写受保护的内部方法

C# 重写受保护的内部方法,c#,asp.net,web-controls,overriding,C#,Asp.net,Web Controls,Overriding,我正在将一个web应用程序重写为ASP.NET4.0,并包含一个菜单控件(当然是绑定到站点地图文件)。虽然我喜欢新的RenderingMode属性,但我讨厌它在页面底部自动包含一些javascript来设置菜单动画 我倾向于使用jQuery进行更大的控制,但事实证明,关闭jQuery是非常困难的。在一位重量级人物的帮助下,我了解到ASP.Net 4.0菜单控件有一个内部OnPreRender方法: internal void OnPreRender(EventArgs e, bool regis

我正在将一个web应用程序重写为ASP.NET4.0,并包含一个菜单控件(当然是绑定到站点地图文件)。虽然我喜欢新的RenderingMode属性,但我讨厌它在页面底部自动包含一些javascript来设置菜单动画

我倾向于使用jQuery进行更大的控制,但事实证明,关闭jQuery是非常困难的。在一位重量级人物的帮助下,我了解到ASP.Net 4.0菜单控件有一个内部OnPreRender方法:

internal void OnPreRender(EventArgs e, bool registerScript);
如何重写此方法以便调用:

base.OnPreRender(e, false);

在目前尝试时,我从Visual Studio收到一个错误,它说“方法'OnPreRender'没有重载需要2个参数”。

您应该能够引用受保护的内部方法,因为它们是受保护的。如果该方法只是
内部
,您可能会运气不佳

查看ASP.NET 4菜单控件,它只有一个
OnPreRender
覆盖:

protected internal override void OnPreRender(EventArgs e);

所以你应该能够覆盖它。不确定OnPreRender(EventArgs e,bool registerScript)
从何而来(可能是
内部的
),但是基类没有它(或者它不可访问)这一事实是您的问题

您应该能够参考
受保护的内部
方法,因为它们是
受保护的
内部
。如果该方法只是
内部
,您可能会运气不佳

查看ASP.NET 4菜单控件,它只有一个
OnPreRender
覆盖:

protected internal override void OnPreRender(EventArgs e);

所以你应该能够覆盖它。不确定OnPreRender(EventArgs e,bool registerScript)
从何而来(可能是
内部的
),但是基类没有它(或者它不可访问)这一事实是您的问题

不是一个直接的答案,但将任何iHeiraChicalDataSource(如站点地图文件)的内容转储到任何数量的jquery菜单产品都可以咀嚼和制作的
上是非常简单的。

不是一个直接的答案,但转储任何iHeiraChicalDataSource(如站点地图文件)的内容是非常简单的,对于任何数量的jquery菜单产品都可以咀嚼和制作的

它只是内部的。我想这就是路的尽头了。我想另一种选择是不调用base
PreRender
,而是在覆盖中编写自己的版本。也许像Reflector这样的东西可以帮助您了解prerender(EventArgs e,bool registerScript)
的具体功能。它只是内部的。我想这就是路的尽头了。我想另一种选择是不调用base
PreRender
,而是在覆盖中编写自己的版本。也许像Reflector这样的东西可以帮助您了解prerender(EventArgs e,bool registerScript)上的
到底做了什么