NLog {aspnet-session:variable=IntID} 渲染器可以 extract/display 来自 HttpContext.Session[IntID] 的整数吗?

Can the NLog {aspnet-session:variable=IntID} renderer extract/display integers from HttpContext.Session[IntID]?

在post详述代码细节之前,只想问一下这是否可能。目前我可以渲染从 Session 中提取的字符串,但不能渲染 INT(没有值,尽管它们在 Session 中有值)。

如果不可能,那么这个问题就解决了。如果可能的话,我无法确定哪里出了问题,&我会 return 到 post 详细信息。

概括说明 - 在控制器中:

HttpContext.Session.SetInt32("SID", (int)userCreds.ProfileSessionId); //custom session id set as INT
HttpContext.Session.SetString("TID", userCreds.TimezoneId);           //timezone id set as STRING

NLOG 目标:

<target xsi:type="File" name="allfile" fileName="T:\test.log"
 layout="[sid: ${aspnet-session:variable=SID}] [tid: ${aspnet-session:variable=TID}]" />

NLOG 输出:

[sid:    ] [tid: 3]

所以字符串值呈现,但 INT 值从不呈现任何东西。

NLog 参考文档没有提及从 Session 中提取 INT,并且他们的示例仅显示从 Session 中提取 STRING。那么,您可以使用 {aspnet-session} 从会话中呈现 INT 吗?

我可以确认这是 ASP.NET 核心的 ${aspnet-session} 当前实施中的 bug/limitation。 (可以看到失败的单元测试here

不幸的是,类型未知,因为在 ASP.NET 核心会话中只保存字节。

目前只支持字符串。

PS:对于ASP.NET(非核心)。整数确实有效。