c# - 如何从外部 dll 访问基础项目会话?
问题描述
我创建了一个 Web 应用程序并向其中添加了一个 dll(XDav.Settings)。在此 dll 中,在某种情况下,触发了一个事件并调用了一个静态操作,如下所示:
using NikDMSTools.Controllers;
using XDav.Settings;
namespace NikDMSTools
{
public class XdavConfig
{
public static void Register()
{
XDavSettings.Events(e =>
{
e.OnProcessing(evt =>
{
if (evt.HttpVerp == XDav.Helper.HttpVerb.PUT)
{
DocumentController.xdav();
}
})
});
}
}
}
我调用 DocumentController.xdav()。
public class DocumentController
{
public static void xdav()
{
var userinfo = System.Web.HttpContext.Current.Session["UserInfo"] as UserInfo;
}
}
但可悲的是 System.Web.HttpContext.Current.Session 在 xdav 函数中为空!!。我如何访问其中的会话?
解决方案
你将它传递给函数:
public class DocumentController
{
public static void xdav(System.Web.HttpContext context)
{
var userinfo = context.Session["UserInfo"] as UserInfo;
}
}
并在当前上下文存在的地方这样调用它:
DocumentController.xdav(System.Web.HttpContext.Current);
推荐阅读
- vba - Word VBA 中的 Dialog.Display 与 Dialog.Show 之间有什么区别?
- python - 我应该使用哪些库来执行以下日常监控活动
- r - RStudio 是否为视障数据科学家提供“大声朗读”选项?
- flutter - 从 CheckboxListTile 中删除内部填充
- java - Project loom:是什么让使用虚拟线程时性能更好?
- javascript - 克隆 div 没有被删除,只是原来的
- flutter - 使用可注入 pub 包时未定义函数“$initGetIt”
- python - 重构 2 dicts 值比较
- javascript - 如何记录使用 Apollo Federation 和 Apollo Gateway 构建的 API 网关?
- python-3.x - 编写一个程序来识别给定的行是否/有注释