我使用的Global.asax在经由Application_EndRequest事件的每个请求的结束执行日志记录。然而,我看到存储在HTTPContext.Current.Items集合中的某些值的一些奇怪的行为。

下面是一个可为空的Enum调试输出。你可以看到,有一个价值,但解决的HasValue为假?!

{System.Nullable(Of AreaNameEnum)}
    HasValue: False
    hasValue: False
    Value: {System.InvalidOperationException}
    value: ADMIN {0}

我猜测它是在请求生命周期来不及访问HTTPContext.Current - 但它似乎有时工作,有时没有。任何人都可以摆脱任何更多的光线上到底是怎么回事呢?

由于

有帮助吗?

解决方案

可为空值是包含布尔hasValue的和T值,其中T是一个值类型的结构。在这种情况下枚举。枚举必须具有在这种情况下,默认为0,然而,公共值抛出异常,因为,hasValue值为假某个值。

你们看到的是可为空的怎么样呢它的内部。你可以不读什么成具有任何价值时hasValue的是假的内在价值领域。毕竟,如果值可以包含空就不会有在这里使用可空的任何一点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top