首页 > 解决方案 > NLog AspNetSession Layout Renderer - 从会话中的强类型对象获取值

问题描述

我们正在使用 .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

无论如何,有人对如何做到这一点有任何想法吗?我需要编写自定义布局渲染器吗?

标签: c#.net-corenlog

解决方案


推荐阅读