1 回答

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊
我想在非控制器類中使用依賴項(xiàng)注入來訪問我的 DbContext 對象。
然后將這些類注入到控制器中,不要讓控制器創(chuàng)建它們。
通常情況下,你會有
ShoppingCartController(網(wǎng)絡(luò) API),
ShoppingCartService(業(yè)務(wù)邏輯)
ShoppingCart(普通的舊 CLR 對象、數(shù)據(jù)持有者、無邏輯)
控制器應(yīng)該注入服務(wù)??刂破魃踔敛恢烙小吧舷挛摹边@樣的東西。該服務(wù)獲取注入的上下文并執(zhí)行所有業(yè)務(wù)邏輯。而購物車只是一個(gè)數(shù)據(jù)持有者。
請new
記住,如果您new
在代碼中看到 a 并且它創(chuàng)建的東西不是普通的、愚蠢的數(shù)據(jù)持有者,那么它可能是錯(cuò)誤的。
例子:
public class ShoppingCartController : Controller
{
? ? private readonly IShoppingCartService shoppingCartService;
? ? public ShoppingCartController(IShoppingCartService shoppingCartService)
? ? {
? ? ? ? this.shoppingCartService = shoppingCartService;
? ? }
}
public class ShoppingCartService : IShoppingCartService?
{
? ? private readonly MrbFarmsDbContext context;?
? ? public ShoppingCartService(MrbFarmsDbContext context)
? ? {? ? ? ? ? ??
? ? ? ? this.context = context;
? ? }
}
- 1 回答
- 0 關(guān)注
- 118 瀏覽
添加回答
舉報(bào)