Ngắn câu chuyện ngắn, tôi đang cố gắng sử dụng ELMAH với MVC 2 và Ninject, và tôi cần sử dụng các hàm tạo parameterless. Tôi đã tạo một bài đăng ban đầu về nó tại đây: Using a parameterless controller constructor with Ninject?Sử dụng tính năng tiêm thay vì tiêm xây dựng
Tôi được khuyên nên sử dụng tính năng tiêm tài sản thay vì tiêm xây dựng. Vì vậy, tôi chuyển từ này:
public class DepartmentsController : Controller
{
private IDepartmentsRepository departmentsRepository;
public DepartmentsController(IDepartmentsRepository departmentsRepository)
{
this.departmentsRepository = departmentsRepository;
}
...
}
này:
public class DepartmentsController : Controller
{
private IDepartmentsRepository _departmentsRepository;
[Inject]
public IDepartmentsRepository DepartmentsRepository
{
get { return _departmentsRepository; }
set { _departmentsRepository = value; }
}
...
}
Nhưng trong các chức năng điều khiển khác của tôi, cho dù tôi cố gắng truy cập vào DepartmentsRepository hoặc _departmentsRepository, tôi nhận được một tài liệu tham khảo đối tượng không được đặt để một thể hiện của một đối tượng lỗi khi tôi cố truy cập nó.
Có điều gì khác tôi cần làm ở đây không?
Bạn đang sử dụng 'Ninject.Web.Mvc'? –
Đợi cái gì? Điều gì đòi hỏi bạn phải sử dụng các hàm tạo parameterless? – jfar
Tôi gặp vấn đề lạ khi một phụ thuộc cụ thể không được giải quyết khi thuộc tính có tên cụ thể. Nó hoạt động tốt nếu đổi tên, nhưng tất cả các phụ thuộc khác giải quyết như bình thường (và cùng một phụ thuộc giải quyết tốt trong các trường hợp khác cho cùng một tên thuộc tính). Tôi không có một đầu mối tại sao, nhưng nó luôn luôn là một cái gì đó để thử. –