Tôi đang làm việc trên mã cũ.Cấu trúcMap Chỉ định các đối số lập trình rõ ràng
Tôi có các phương thức khác nhau của cùng một lớp chuyển các đối số khác nhau tới hàm tạo của một phụ thuộc. Tôi đang cố gắng để có được một số cách sử dụng IoC cơ bản được giới thiệu. Ngay bây giờ tôi có StructureMap chuyển các đối số của tôi như thế này:
var thing = ObjectFactory.GetInstance<IThingInterface>(new ExplicitArguments(
new Dictionary<string, object> {
{ "constructorArgA", notShown },
{ "constructorArgB", redacted.Property } }));
Nơi các thuộc tính thực tế được chuyển cho hàm tạo và thay đổi tùy thuộc vào vị trí của tôi.
Thay vì "constructorArgA" là có một cách để cấu hình này thông qua các loại thực tế, như bạn có thể làm khi cấu hình objectFactory, như:
x.For<IHidden>().Use<RealType>()
.Ctor<IConfig>().Is(new Func<IContext, IConfig>(
(context) => someMethodToGetIConfig()));
Nếu tôi đang viết này từ đầu tôi muốn có lẽ cấu trúc các phụ thuộc có một chút khác biệt để tránh điều này, nhưng đó không phải là một lựa chọn cho tôi ngay bây giờ.
HOẶC tôi có nên chuyển sang tính năng tiêm tài sản thay vì phun phương tiện xây dựng không? –