Используя Unity, вы можете зарегистрировать интерфейс так чтобы он удовлетворял тип с некоторыми параметрами, и вы можете также назвали регистрацию:Регистрация по умолчанию с именем регистрация
container.RegisterType<IInterface, MyClass>(
new InjectionConstructor(new ResolvedParameter<string>("Default"))
);
container.RegisterType<IInterface, MyClass>(
"Named First",
new InjectionConstructor(new ResolvedParameter<string>("Named First"))
);
container.RegisterType<IInterface, MyClass>(
"Named Second",
new InjectionConstructor(new ResolvedParameter<string>("Named Second"))
);
Допустим, я хочу, чтобы моя регистрация по умолчанию сделать то же самое вещь как «Именованная вторая» регистрация. Я мог бы мог сделать это:
container.RegisterType<IInterface, MyClass>(
new InjectionConstructor(new ResolvedParameter<string>("Named Second"))
);
Есть ли способ иметь значение по умолчанию (безымянная?) Регистрация точки ко второму имени регистрации, вместо того, чтобы копировать все это? Что-то вроде:
container.RegisterType<IInterface, IInterface("Named Second")>(); // Doesn't work.
В примере, это только конструктор с одним параметром, но, скажем, конструктор занимает 8 интерфейсов, 2 InjectionProperties и в InjectionMethod, вы не хотели бы, чтобы дублировать, рискуя десинхронизации.
Похоже на звук. Я боялся разрешения интерфейса на «время регистрации», но я не знаю, почему я не думал об использовании выражения лямбда. Я проверю это завтра, но я не вижу причин, почему это не сработает! – Tipx
Работал отлично, спасибо, сэр! – Tipx