ASP.Net:在代码隐藏的基础上向 Page_Load 添加附加代码

phi*_*lks 5 .net c# asp.net

我正在尝试向 ASP.Net 页面的 Page_Load 方法添加几行额外的代码,其中现有的 Page_Load 代码存储在已编译的代码隐藏 DLL 中。尽管我可以使用 Dis# 提取 Page_Load 方法的代码,但我无权访问 DLL 的源代码。

添加新代码的最佳方法是什么?我需要将现有的 Page_Load 代码与新代码一起执行,并且它们的执行顺序并不重要。

具体来说,我正在修复一个使用 Telerik RadEditor 的旧应用程序,该应用程序在 Firefox 6 下无法正常工作。有关我添加的确切代码,请参阅此页面。

Jam*_*son 3

如果您可以访问 ASPX 部分,则可以尝试向 ASPX 添加代码块,并覆盖 OnInit 或 OnPreInit,这对于您尝试添加的代码应该可以正常工作。

<script runat="server">
    protected override void OnPreInit(EventArgs e)
    {
        base.OnPreInit(e);

        if (Request.Browser.Browser.ToLowerInvariant() == "firefox")
        {    
            System.Reflection.FieldInfo browserCheckedField = typeof(RadEditor).GetField("_browserCapabilitiesRetrieved", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);    
            browserCheckedField.SetValue(RadEditor1, true);    

            System.Reflection.FieldInfo browserSupportedField = typeof(RadEditor).GetField("_isSupportedBrowser", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);    
            browserSupportedField.SetValue(RadEditor1, true);
        }                        
    }
</script>   
Run Code Online (Sandbox Code Playgroud)