2015-08-18 12 views
7

Tôi đang nghiên cứu ASP.NET 5 documentation (Thật tuyệt vời và tốt hơn so với cũ). Tôi hiểu rằng ASP.NET 5 bao gồm một gói đảo ngược điều khiển (IoC) được tích hợp sẵn có hỗ trợ việc xây dựng tiêm theo mặc định. Theo tôi biết, việc cấu hình các dịch vụ và phụ thuộc được thực hiện bên trong phương thức ConfigureServices().ASP.NET 5 tiêm phụ thuộc vào khởi động như thế nào?

Phương thức ConfigureServices() được gọi sau phương thức StartUp.

Vì vậy, câu hỏi của tôi là: ASP.NET 5 nội bộ tiêm phụ thuộc của Startup như thế nào?

Tôi muốn biết rằng vì nếu tôi muốn tiêm một phụ thuộc khác, ví dụ: IFooEnviroment làm cách nào tôi có thể làm điều đó?

+2

Phụ thuộc của Startup được lớp lưu trữ (HostingEngine-> StartupLoader-> khởi tạo lớp khởi động của bạn với phụ thuộc) ... không chắc bạn có thể làm bất cứ điều gì ở đây ... tôi có thể hỏi tại sao bạn cần tiêm trong Startup's constructor? kịch bản của bạn là gì? –

+0

Cảm ơn @KiranChalla. Tôi chỉ tò mò muốn biết rằng nó có thể hay không. –

+1

Một chút lỗi thời nhưng đây là câu trả lời của tôi cho một câu hỏi tương tự: http://stackoverflow.com/questions/29550647/dependency-injection-asp-vnext-how-is-this-working/29580182#29580182 –

Trả lời

3

Logic này sống trong lớp Hosting của ASP.NET 5:

Bạn có thể đăng ký dịch vụ của riêng mình trong ConfigureServices. Nhưng chúng sẽ không có sẵn trong hàm tạo như bạn đã tìm. Không có cách nào để thêm các dịch vụ của riêng bạn vào các dịch vụ thời gian chạy. Điều này có ý nghĩa bởi vì phải có sự khác biệt giữa các dịch vụ thời gian chạyứng dụng.

Tuy nhiên, bạn có thể tiêm các dịch vụ đã đăng ký theo phương thức ConfigureServices() theo phương pháp Configure().

+0

Vì vậy, bạn có nghĩa là không có cách nào để thêm dịch vụ của tôi vào các dịch vụ thời gian chạy? –

+0

Vâng, bạn có thể. Nhưng không _before_ 'ConfigureServices()'. Đó là cách duy nhất để thêm dịch vụ vào nhà cung cấp dịch vụ mà không cần phải tiếp quản toàn bộ phần lưu trữ. –

Các vấn đề liên quan