Tôi đã viết một lớp có một số phụ thuộc mà nó giải quyết từ vùng chứa thống nhất.Ví dụ đăng ký Unity và giải quyết
Từ lớp học chính của tôi, tôi tạo ra một đối tượng mới
MyObject myObject = new MyObject();
tôi đăng ký với Unity container của tôi
UContainer.RegisterInstance<MyObject>(myObject, new ExternallyControlledLifetimeManager());
tôi tạo ra các loại cần này như một sự phụ thuộc
ConsumerObject consumer = new ConsumerObject();
người tiêu dùng trông giống như sau:
public class ConsumerObject
{
public ConsumberObject()
{
theObject = (MyObject)UContainer.Resolve(typeof(MyObject));
}
}
này ném một ngoại lệ:
Nghị quyết của sự phụ thuộc thất bại, type = "MyObject", name = "". Thông báo ngoại lệ là: Hoạt động xây dựng hiện tại (khoá xây dựng khóa [MyObject, null]) không thành công: Tham số pp không thể được giải quyết khi cố gắng gọi hàm tạo MyObject (IPreferenceStorageProvider pp). (Loại chiến lược BuildPlanStrategy, chỉ số 3)
Tại sao cuộc gọi giải quyết của tôi lại cố gắng gọi một contrructor khác trên loại? Tôi đã tạo ra nó và đăng ký các trường hợp .. Tôi cũng đã thử nó như: theObject = UContainer.Resolve<MyObject>();
dường như không thực hiện bất kỳ sự khác biệt ..
Cảm ơn
vấn đề là "MyObject" không phải đối tượng của tôi .. Nó có khoảng 15 nhà xây dựng .. Tôi có thể tạo ra nó, nhưng tôi không có quyền kiểm soát cấu trúc của nó .. Tại sao Unity có cố gắng làm mới nó không? Tôi tạo ra một thể hiện và đăng ký nó .. Nó bây giờ trong container như một singleton, Nó không nên gọi bất kỳ nhà xây dựng .. ??? –