问题描述
我已经创建了一个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;
}
}
但是遗憾的是,在xdav函数!!中System.Web.HttpContext.Current.Session为null。我如何访问其中的会话?
解决方法
您将其传递给函数:
public class DocumentController
{
public static void xdav(System.Web.HttpContext context)
{
var userinfo = context.Session["UserInfo"] as UserInfo;
}
}
并在当前上下文存在的地方这样称呼它:
DocumentController.xdav(System.Web.HttpContext.Current);