Tôi chắc chắn đây là một câu hỏi ngu ngốc, như tôi giả định câu trả lời là "Khi đối tượng được instulediated bởi Ninject" ... nhưng tôi muốn kiểm tra lại ...Khi nào thì OnActivation của Ninject bị sa thải?
Để cung cấp thêm một chút ngữ cảnh tại sao tôi hỏi câu hỏi này, tôi có một ứng dụng asp mvc thực hiện NinjectHttpApplication. Tuy nhiên, trong quá trình ghi đè OnApplicationStarted, tôi cần kích hoạt một phương thức trên một cá thể singleton bị ràng buộc trong phạm vi Ninject.
Vấn đề là hạt nhân được tiếp xúc nhưng không nên được sử dụng như một định vị dịch vụ, vì vậy tôi có thể lấy lại đối tượng từ đó và gọi DoSomeSetup(); nhưng có vẻ như thất bại. Theo hiểu biết của tôi, cá thể NinjectHttpApplication không phải là tệp Global.asax sử dụng nó trực tiếp, vì vậy tôi không thể chuyển nó thành ứng dụng theo cách đó.
Điều này để lại cho tôi một tùy chọn khác có thể thêm OnActivation (x => x.DoSomeSetup()); Tuy nhiên, nó không giống như lần đầu tiên bạn tải một trang mà nó sẽ được yêu cầu bởi bộ điều khiển, vì vậy nếu OnActivation chờ cho cá thể đầu tiên được tạo, nó có thể không xảy ra cho một lúc.
Hy vọng thats không quá khó hiểu :)
Bạn có thể đưa ra ví dụ nhanh về việc tiêm thuộc tính vào NinjectHttpApplication không? Chỉ để chắc chắn rằng tôi hiểu bạn một cách chính xác. – Grofit
Thêm thuộc tính công khai bằng bộ đặt và thêm thuộc tính [Tiêm] vào nó. –