我想在非控制器类中使用依赖项注入来访问我的 DbContext 对象。
我有一个 ShoppingCart 控制器和一个购物车类,如下所示。在控制器类中,我成功注入了 DbContext,但在 ShoppingCart 类中却没有。因此,我显式地从控制器传递 _context 对象。
但是当我想直接使用 ShoppingCart 时,即不需要控制器传递对象。我收到 ObjectDescoped 异常。
ShoppingCartController.cs:
public class ShoppingCartController : Controller
{
private readonly MrbFarmsDbContext _context;
private ShoppingCart cart;
public ShoppingCartController(MrbFarmsDbContext context)
{
_context = context;
cart = new ShoppingCart(_context);
}
}
购物车.cs:
public class ShoppingCart
{
private MrbFarmsDbContext _context;
public ShoppingCart(MrbFarmsDbContext context)//this constructer is called from Controller class.
{
_context = context;
}
public ShoppingCart()
{
}
}
方法:
public static ShoppingCart GetCart(HttpContext context)
{
var cart = new ShoppingCart();
cart.ShoppingCartId = cart.GetCartId(context);
return cart;
}
Qyouu
相关分类