2017-09-05 22 views
0

我想在我的服務服務Asp.Net核2.0會話是空拋出異常

private readonly ApplicationDbContext _context; 
private readonly ISession _session; 


    public CartService(ApplicationDbContext context, IServiceProvider serviceProvider) 
    { 
     _context = context; 
     _session = serviceProvider.GetRequiredService<IHttpContextAccessor>()?.HttpContext.Session; 
    } 

和Startup.cs添加一個會議上,我加入這一行:

services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>(); 

當我運行應用程序時發生異常:

System.NullReferenceException:'對象引用未設置爲對象的實例。'

我不明白,我錯過了什麼?

回答

0

我解決它通過刪除以下行:

private readonly ISession _session; 
_session = serviceProvider.GetRequiredService<IHttpContextAccessor>()?.HttpContext.Session; 

,而是在我的方法來發送會話參數

public List<Item> GetItems(HttpContext httpContext) 
    { 
    List<Item> Items = new List<Item>(); 
     var session = httpContext.Session.GetInt32("Session"); 

    return Items 
    }