我们正在使用.NET Core,并且扩展了ISession以允许我们将强类型对象存储为Session中的单个项目。这样做的代码很简单(只是您有个主意):
public static void SetObject<T>(this ISession session, string key, T value)
{
session.SetString(key, JsonConvert.SerializeObject(value));
}
现在,我很想使用NLog的AspNetSession布局渲染器来尝试获取会话中强类型对象的属性之一的值。
在NLog配置文件中,我尝试访问如下属性:
${aspnet-session:Variable=UserSessionValidationInfo.MstrUserID:EvaluateAsNestedProperties=true}
其中“ UserSessionValidationInfo”是我们卡在Session中的对象的键名,而MstrUserID是属性名。
一无所获。
我认为这是不可能的,但是基于此处提供的示例,我充满希望:https://github.com/NLog/NLog/wiki/AspNetSession-layout-renderer
无论如何,有人对如何执行此操作有任何想法吗?我需要编写自定义布局渲染器吗?