Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.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_Session Variables - Fatal编程技术网

C# 检查会话是否为空

C# 检查会话是否为空,c#,asp.net,session-variables,C#,Asp.net,Session Variables,在下面的代码中,我有一个会话变量,我想在其中检查它是否为null。请帮我做这个。 SearchDoc是类 var SearchDoc = (SearchDoc)Session["Documentname"]; var oDocumentID = SearchDoc.ClientID; var Documentid = SearchDoc.DocumentID; if (SearchDoc == null) { } 您可以简单地尝试以下方法: string oDocumentID = str

在下面的代码中,我有一个会话变量,我想在其中检查它是否为null。请帮我做这个。 SearchDoc是类

var SearchDoc = (SearchDoc)Session["Documentname"];
var oDocumentID = SearchDoc.ClientID;
var Documentid = SearchDoc.DocumentID;

if (SearchDoc == null)
{

}

您可以简单地尝试以下方法:

string oDocumentID = string.Empty;
string Documentid = string.Empty;

if(Session["Documentname"] != null){
 var SearchDoc = (YourSearchDocType)Session["Documentname"];
 oDocumentID = SearchDoc.ClientID;
 Documentid = SearchDoc.DocumentID;

 // some code
}
不要尝试访问对象的某些属性,这些属性可能为空

if(Session["Documentname"] != null)
{
    var SearchDoc = (SearchDoc)Session["Documentname"];
    var oDocumentID = SearchDoc.ClientID;
    var Documentid = SearchDoc.DocumentID;

    if (SearchDoc == null)
    {
    }

}

这是最安全的方法:

 if ((HttpContext.Current.Session !=null && Session["Documentname"] as SearchDoc!= null))
{

 //do what you want with
  ((SearchDoc)Session["Documentname"])

}
需要注意的两件事:

是的,会话对象有时为空。可能发生在AShX没有适当接口的情况下 使用AS运算符。-一旦一切正常,你就可以安全地投到SearchDOC
你有什么问题?会话[文档名]!=nullUse var SearchDoc=会话[Documentname]作为SearchDoc;如果Session[Documentname]为null,那么我认为不可能强制转换SearchDocHttpContext.Current.Session将提供所有会话,或者只提供Session[Documentname]?@Bharadwaj您并不总是实例化Session对象。取决于你的舞台,例如ASHX@Bharadwaj重新检查-你不需要检查。我的意思是如果任务为空=null{}是有效语句