一些需要思考的场景。有一个遗留代码具有以下实现示例 1 和示例 2。如果我们尝试实现MSDN 推荐,那么遗留代码就会失败。
这是一个旧代码示例:
示例 1:
无效页面加载(){ ....一些代码 如果(条件){ /// 一些条件 } 别的 { 重定向页面(网址); } // 另一个代码块 // 一些其他条件。 }
示例 2:
一种。文件1.ascx 无效页面加载(){ 尝试 { ..一些代码 base.CheckPreference(); 重定向页面(默认页面); } 捕捉(异常前){ ExceptionHandling.GetErrorMessage(ex); } } 湾。BaseClass.cs // 这是基类 无效检查偏好(){ 尝试 { 如果(条件){ 重定向页面(url1); }否则如果(条件2){ 重定向页面(url2); } 别的 { // 更新会话 } } 捕捉(异常前){ ExceptionHandling.GetErrorMessage(ex); 扔; } } 无效重定向页面(字符串网址){ 响应。重定向(网址); }
一种可能的方法是在类中添加一个布尔字段,例如 endExecution,在调用 RedirectPage 时将该字段设置为 true。
我们必须更新 RedirectPage 代码,请参见下面的代码片段:
// 更新代码 - MSDN 推荐。 无效重定向页面(网址){ Response.Redirect(url, false); this.Context.ApplicationInstance.CompleteRequest(); 结束执行=真; }
请提出一些其他更好的方法来改进遗留代码的实现。