Cho một lớp học với một số nhà xây dựng - làm thế nào tôi có thể nói cho Resolve mà constructor sử dụng?Unity.Resolve biết constructor để sử dụng như thế nào?
Hãy xem xét các lớp ví dụ sau:
public class Foo
{
public Foo() { }
public Foo(IBar bar)
{
Bar = bar;
}
public Foo(string name, IBar bar)
{
Bar = bar;
Name = name;
}
public IBar Bar { get; set; }
public string Name { get; set; }
}
Nếu tôi muốn tạo một đối tượng của loại Foo sử dụng Giải quyết như thế nào sẽ giải quyết biết constructor sử dụng không? Và làm thế nào tôi có thể nói nó để sử dụng đúng? Hãy nói rằng tôi có một container với một IBar đăng ký - nó sẽ hiểu rằng nó nên ủng hộ các nhà xây dựng dùng IBar? Và nếu tôi chỉ định một chuỗi quá - nó sẽ sử dụng constructor (string, IBar)
?
Foo foo = unityContainer.Resolve<Foo>();
Và hãy bỏ qua một thực tế rằng nó có lẽ sẽ dễ dàng hơn nếu lớp chỉ có một constructor đơn ...
Tuyệt vời. Cảm ơn..! – stiank81
Chính xác những gì tôi đang tìm kiếm! Tôi chỉ trang trí các nhà xây dựng tôi muốn được sử dụng với [InjectionConstructor] –
Đó là câu trả lời sẽ tiết kiệm được một ngày cuối tuần. Được xác định rõ. –