Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.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/37.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#?_C#_Asp.net - Fatal编程技术网

类是否可以返回给调用方法C#?

类是否可以返回给调用方法C#?,c#,asp.net,C#,Asp.net,我是新来C#的,需要一些帮助。我有一个ASP.Net页面,它在几种不同的方法中使用会话变量。会话变量是一个UserInfo类,用于在页面之间存储用户信息。我试图让一个方法从会话中创建userinfo类,并将其返回给调用方法。我相信这是可以做到的,我就是想不出来。任何帮助都将不胜感激 private void CheckForUserType() { var user = RetrieveSession(); } private object RetrieveSession() {

我是新来C#的,需要一些帮助。我有一个ASP.Net页面,它在几种不同的方法中使用会话变量。会话变量是一个UserInfo类,用于在页面之间存储用户信息。我试图让一个方法从会话中创建userinfo类,并将其返回给调用方法。我相信这是可以做到的,我就是想不出来。任何帮助都将不胜感激

private void CheckForUserType()
{
    var user = RetrieveSession();
}

private object RetrieveSession()
{
    var userInfo =(UserInfo)HttpContext.Current.Session["userInfo"];
    return userInfo;
}
尝试新对象

 private void CheckForUserType()
 {
    var user = RetrieveSession();
 }


 private UserInfo RetrieveSession()
 {
    UserInfo userInfo = new UserInfo(HttpContext.Current.Session["userInfo"]);
    return userInfo;
 }

如上所述,返回UserInfo对象,如果您从不同的区域调用它,可能会将其公开而不是私有。
我会小心使用会话对象,特别是如果您使用多台服务器或azure,请确保您的操作正确。最好不要使用会话对象和用户oauth2 owin/katana

您需要在代码中稍作调整。将返回类型从
object
更改为
UserInfo

   private UserInfo RetrieveSession()
   {
        var userInfo =(UserInfo)HttpContext.Current.Session["userInfo"];
        return userInfo;
   }

您可能需要根据希望使用此方法的方式更改
访问修饰符

将RetrieveSession()上的返回类型从“object”更改为“UserInfo”?您看到了什么错误或问题?在C#中,您返回的是对象而不是类。仅供将来更好地撰写问题时参考。请参见:返回对象或类??类是一个对象定义,无法返回“类”,该类应该在您的范围内定义,以便能够从中创建实例(对象)。这么多糟糕的强制转换,请将“var user”更改为“UserInfo user”更改为“prive object restrievesession”“Private UserInfo RetrievesessionHttpContext.Current.Session就像对象的字典,因此您只需要通过索引器获取值并强制转换它