NLog {aspnet-session:variable=IntID}渲染器能否从HttpContext.Session[IntID]中提取display整数?

问题描述 投票:0回答:1

在发详细的代码之前,只想问一下这是否可能。 目前我可以渲染从Session中提取的字符串,但不能渲染INTs(没有值,即使它们在Session中有值)。如果不可能,那么这个问题就解决了。 如果可以,我无法确定是哪里出了问题,&我会回帖详细说明。

NUTSHELL EXPLANATION--在一个控制器中。

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:

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

NLOG OUTPUT:

[sid:    ] [tid: 3]

所以字符串的值会渲染,但INT的值不会渲染任何东西。

NLog参考文档没有提到从Session中提取INT值,他们的例子只显示了从Session中提取STRING值。 那么,你能用{aspnet-session}从Session中渲染一个INT吗?

c# session asp.net-core-mvc nlog asp.net-core-3.1
1个回答
0
投票

我可以确认这是当前实现中的一个bug限制。${aspnet-session} 的ASP.NET Core。(单元测试失败可以看出 此处)

遗憾的是类型未知,因为在ASP.NET Core会话中只保存字节。

目前只支持字符串。

PS:对于ASP.NET(非核心)。整数确实可以用。

© www.soinside.com 2019 - 2024. All rights reserved.