Tôi đang theo dõi để sử dụng Ninject làm vùng chứa IoC nhưng không thể hiểu cách tạo một thể hiện của một lớp có nhiều hơn 1 tham số trong hàm tạo. Về cơ bản tôi có một giao diện dịch vụ để xác thực trong một thư viện PCL và thực hiện nó trong một dự án WP8 tiếp nhận trong constructor phím cosumer, bí mật và baseAddress:Constructor với nhiều đối số với Ninject
//On PCL project
public interface IAuthorizationService {
bool Authenticate();
}
//On WP8 Project
pubilc class MyAuthenticator : IAuthorizationService {
public MyAuthenticator(string consumerKey, string consumerSecret, string baseAddress) { ... }
public bool Authenticate() { ... }
}
Bây giờ tôi cần phải cấu hình Ninject mô-đun để tôi có thể có được một thể hiện của IAuthorizationService. Nếu lớp học của tôi không có nhà xây dựng tôi sẽ làm:
internal class Module : NinjectModule {
public override void Load() {
this.Bind<IAuthorizationService>().To<MyAuthenticator>();
}
}
Nếu nó đã giá trị cố định cho các nhà xây dựng tôi sẽ làm:
internal class Module : NinjectModule {
public override void Load() {
this.Bind<IAuthorizationService>().To<MyAuthenticator>().WithConstructorArgument(*/* fixed argument here*/*);
}
}
Và để có được một thể hiện Module.Get<IAuthorizationService>()
Nhưng những gì nếu các tham số constructor không thể được giải quyết tại thời gian biên dịch? Làm thế nào để vượt qua các paramenters? Mã ràng buộc phải như thế nào?
Đã chỉnh sửa claryfy câu hỏi.
Tại sao bạn nên downvote? nên có ít nhất nhận xét vì vậy tôi có thể thay đổi câu hỏi ... –
nó có lẽ bởi vì họ cảm thấy rằng câu hỏi này được dễ dàng trả lời bằng cách nhìn vào các tài liệu: https://github.com/ninject/ninject/wiki/Dependency-Injection- Với-Ninject – BatteryBackupUnit
Không, nó không phải là! Nếu bạn nhìn vào các tài liệu, tất cả các tham số của hàm tạo là "có thể tiêm" được. Constructor của tôi có các tham số chuỗi. –