【发布时间】:2013-05-25 04:44:22
【问题描述】:
我创建了以下扩展方法:
<System.Runtime.CompilerServices.Extension()> _
Public Function ToIntegerOrDefault(ByVal valueToParse As Object, Optional ByVal defaultValue As Integer = 0) As Integer
Dim retVal As Integer = 0
If Not Integer.TryParse(valueToParse.ToString, retVal) Then
retVal = defaultValue
End If
Return retVal
End Function
我想在会话变量上使用这种扩展方法,如下所示:
ReadOnly Property NodeID As Integer
Get
Return Session(SessionVariables.SELECTED_NODE_ID).ToIntegerOrDefault()
End Get
End Property
但是,在设置会话变量之前调用该方法时,会抛出 NullReferenceException 和消息 Object variable or With block variable not set.
有没有一种安全的方式以这种方式在会话变量上使用扩展方法(假设会话变量可能为空)?
【问题讨论】:
-
您的代码看起来不错,您的会话密钥是否有效?
-
我会先检查该值是否为空。
标签: asp.net vb.net extension-methods session-variables