我试图继承一个基础 global.asax 类来创建我的自定义 global.asax 类。但是我的客户继承的全局类不能正常工作。它的 Application_Start 不会被调用。
有人知道乳清吗?
public class BaseGlobal : HttpApplication
{
protected void Application_Start(Object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
Logger.Warn("Portal Started"); //I can find it log file
}
......
}
public class MyGlobal : BaseGlobal
{
new protected void Application_Start(Object sender, EventArgs e)
{
base.Application_Start(sender,e);
Logger.Warn("Portal Started 2"); // Can not find it in log file
}
}
<%@ Application Codebehind="Global.asax.cs" Inherits="Membership_ABC.MyGlobal" Language="C#" %>
在日志文件中,我找不到“Portal started 2”,而只是“Portal Started”。
有任何想法吗?
最佳答案
解决方法是在基类中声明函数virtual,然后在子类中覆盖它。
但是由于您无法编辑基类来声明 Application_Start 方法为虚拟,因此它不起作用:
Is it possible to override a non-virtual method?
接受的答案给出了一个与您的情况相匹配的示例。
关于c# - 继承 Global.asax 和 Application_Start 问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13605230/