Tôi đã thừa hưởng một số mã có lớp AuthenticationManager với tất cả các phương thức tĩnh.Làm thế nào để bạn cấu trúc lại các lớp tĩnh để sử dụng tiêm phụ thuộc?
Im giới thiệu DI và muốn thêm một constructor mà mất một sự phụ thuộc UserController
UserController _userController;
public AuthenticationManager(UserController userCont)
{
_userController = userCont;
}
Bây giờ Im nhận được lỗi thời gian biên dịch như là một biến tĩnh không được tham chiếu từ một phương pháp tĩnh. Đề nghị thực hành tốt nhất của bạn là gì để làm việc này với những thay đổi tối thiểu đối với lớp này và mã gọi?
Chúng tôi đang sử dụng SimpleServiceLocator làm vùng chứa IOC.
Sẽ không phải là lúc để nâng cấp lên [Simple Injector] (http://simpleinjector.codeplex.com)? Tôi đã ngừng phát triển Simple Locator Service. – Steven
Cảm ơn lời khuyên - Tôi không biết rằng Simple Injector đã tồn tại! Injector đơn giản có cung cấp thêm chức năng để giải quyết câu hỏi của tôi hay chỉ là một việc tốt để làm? –
Nó không giải quyết câu hỏi của bạn, nhưng Simple Injector nhanh hơn, sạch hơn và có hỗ trợ tốt hơn cho việc thêm phần mở rộng (hầu hết các kịch bản nâng cao được mô tả [ở đây] (http://simpleinjector.codeplex.com/wikipage?title = Advanced-scenario & referringTitle = Tài liệu) không thể thực hiện với SSL). Bạn có thể đọc về những khác biệt cốt lõi SI một SSL [ở đây] (http://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=87). – Steven