Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从asp.net会话+;对象引用未设置为对象的实例_C#_Asp.net_List_Session - Fatal编程技术网

C# 从asp.net会话+;对象引用未设置为对象的实例

C# 从asp.net会话+;对象引用未设置为对象的实例,c#,asp.net,list,session,C#,Asp.net,List,Session,为了在asp.net应用程序中处理会话变量,我创建了一个SessionManager类。以下是我的SessionManager类代码: public int TotalTests { get { return (int)HttpContext.Current.Session["totalTests"]; } set { HttpContext.Curre

为了在asp.net应用程序中处理会话变量,我创建了一个SessionManager类。以下是我的SessionManager类代码:

    public int TotalTests
    {
        get
        {
            return (int)HttpContext.Current.Session["totalTests"];
        }
        set
        {
            HttpContext.Current.Session["totalTests"] = value;
        }
    }

    public List<TestCase> TestCases
    {
        get
        {
            return (List<TestCase>)HttpContext.Current.Session["testCases"];
        }
        set
        {
            HttpContext.Current.Session["testCases"] = value;
        }
    }
并在我使用的会话中填充集合

SessionManager会话=新建SessionManager(); session.TestCases=TestCases


你知道这是什么原因吗

对象引用是在LINQ语句本身上,还是在尝试访问“test”对象时?另外,您确定“result”不是null吗?我已经设置了一个断点。创建SessionManager类的实例时,会话对象显示以下异常:“session.TestCases”引发的异常类型为“System.NullReferenceException”会话。TotalTests引发的异常类型为“System.NullReferenceException”我在调用NunitEventListener继承了nunit接口nunit.Core.EventListener,调用此方法时它是否真的在创建一个新会话,因此它会发现会话列表为空?啊哈,最好在问题中提到nunit之类的东西,因为这可能是个问题,因为它可能在不同的上下文中工作-所以,是的,我相信在您的测试用例中会调用一个全新的会话,因此列表将是空的。嗯,我也这么认为。我想到的是访问存储在会话中的集合中的测试列表,并在testfinished事件上设置它们的结果,然后再次从webmethod访问会话中的集合,以在ui中显示结果。所以我认为唯一的方法就是直接从数据库中获取结果,就像我目前所做的那样。我的计划实际上是找到一种方法,以避免对sql数据库的大量请求,从而获得结果并将所有内容存储在内存中。这就是我要做的,避免在可能的情况下进行会话,并通过少量调用从数据库快速检索数据。
TestCase test = (from testCase in session.TestCases
                        where testCase.testName == result.Name
                        select testCase).Single();