WebForm中静态变量问题的生命周期

时间:2017-04-14 09:14:28

标签: c# asp.net vb.net

我无法解决这个问题,我在Appication_Start期间将实例分配给静态类和变量,并且该变量在几天后变为null。

public static class IocFactory
{
    private static IContainer _appscopeContainer;

    public static void Register(IContainer container = null){
        _appscopeContainer = container
    }

    public static Instance{
        get { return _appscopeContainer; }
    }
}

我在Appication_Start上为变量分配了一个实例,我希望_appscopeContainer有效。

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    Dim appContainer As IContainer = new Container()
    'register framework 4.0 class to container...

    IocFactory.Register(appContainer)
End Sub

Begin_Request我将构建一个子容器并将其存储到HttpContext请求缓存中,并且有时会在几天之后发出错误说_appscopeContainer为空,我试过回收应用程序,它通常是正常的。

Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
    Dim requestContainer As IContainer = IocFactory.Instance.BeginLifetimeScope(Tags.RequestLifetimeScopeTag)
End Sub

0 个答案:

没有答案