Làm cách nào để chèn các phụ thuộc vào global.asax.cs, tức là lớp MvcApplication? Trước đây đã từng sử dụng mẫu Dịch vụ Định vị (chống) để tiêm phụ thuộc, tôi đang cố gắng làm theo lời khuyên thực hành tốt nhất trong ứng dụng MVC mới nhất của tôi bằng cách sử dụng một thùng chứa IOC (đặc biệt là Unity.Mvc3 vì nó đi kèm với việc thực hiện IDependencyResolver ra khỏi hộp) và tiêm constructor.Cách chèn các phụ thuộc vào global.asax.cs
Mọi thứ có vẻ khá thẳng về phía trước, ngoại trừ một vài dấu giật, một trong số đó nằm trong global.asax.cs (cái kia dành cho các thuộc tính tùy chỉnh nhưng có một câu hỏi về SO bao hàm).
Các xử lý sự kiện HttpApplication trong lớp MvcApplication như:
Application_Start()
Application_EndRequest(object sender, EventArgs e)
Application_AcquireRequestState(object sender, EventArgs e)
có thể yêu cầu phụ thuộc bên ngoài, ví dụ một sự phụ thuộc vào một ILogService. Vì vậy, làm thế nào để tôi tiêm chúng mà không cần đến mô hình định vị dịch vụ (chống) của ví dụ.
private static ILogService LogService
{
get
{
return DependencyResolver.Current.GetService<ILogService>();
}
}
Bất kỳ trợ giúp/lời khuyên nào được đánh giá cao!
Hi, câu hỏi thú vị! Tại sao bạn không thể tiêm phụ thuộc trong global.asax của bạn trong OnApplicationStarted? Nếu ứng dụng không thể bắt đầu bạn sẽ nhận thức được nó là không có gì sẽ làm việc ... –