微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从外部dll访问基础项目会话?

如何解决如何从外部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;       
       }
    }

但是遗憾的是,在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);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。