Как вызвать переменные сеанса в другом проекте в том же решении Asp. NET Core 3 - PullRequest
0 голосов
/ 16 июня 2020

Я запускаю несколько проектов в своей системе, как показано ниже:

  1. Проект запуска - это Project 1
  2. Проект BLL (в этом проекте я настраиваю сеанс)
  3. Common Project (только в этом проекте я хочу вызвать сеанс)

В этом классе я не могу создать конструктор. Это мой класс:

namespace Project.Common
{
   public class Share
   {
        public const string SESSION_CURRENT_COMPANY = "Company";

        public static int LoggedInMembersCompanyID
        {
            get
            {    
                    var companyIdSession = HttpContext.Session.GetInt32(Common.SESSION_CURRENT_COMPANY);
                    int _companyIdSessionID = 0;
                    if (companyIdSession != null)
                    {
                        int.TryParse(companyIdSession.ToString(), out _companyIdSessionID);
                    }
                    return _companyIdSessionID;
            }
        }
    }
}

1 Ответ

0 голосов
/ 16 июня 2020
  1. Вы должны добавить это в функцию настройки startup.cs непосредственно перед app.UsesEndpoits

    Common.Configure(app.ApplicationServices.GetRequiredService<IHttpContextAccessor>(), Configuration);

  2. Go в Common Project и Go в Common.cs добавьте вверху следующее:

private static IHttpContextAccessor _httpContextAccessor; 
private static IConfiguration _configuration;
public static void Configure(IHttpContextAccessor httpContextAccessor,IConfiguration configuration)
{
                _httpContextAccessor = httpContextAccessor;
                _configuration = configuration;
}
Получите значение сеанса, как показано ниже:
public static int LoggedInMembersCompanyID
{
  get
     { 
       var companyIdSession = HttpContext.Current.Session[Share.SESSION_CURRENT_COMPANY];
       int _companyIdSessionID = 0;
       if (companyIdSession != null)
       {
         int.TryParse(companyIdSession.ToString(), out _companyIdSessionID);
       }
        return _companyIdSessionID; 
    }
}
...