Я разрабатываю приложение WinForms, и мне нужно, чтобы иметь некоторые объекты в любой форме, и я не хочу, чтобы инициализировать каждый объект на каждой форме так, я создал базовый класс:инъекционных объекты в формы
public class FormBase : Form
{
#region Properties
public BusinessLogic.ChppManager ChppManager { get; protected set; }
public BusinessLogic.DatabaseManager DatabaseManager { get; protected set; }
public BusinessLogic.FileManager FileManager { get; protected set; }
public BusinessLogic.RegistryManager RegistryManager { get; protected set; }
#endregion Properties
}
И передаю каждый из этих объектов на конструкторе. Он работает, но я хотел знать, есть ли более простой (стандартный) способ сделать это, не передавая эти параметры при каждом вызове конструктора.
Заранее спасибо.
В дополнение к вашему ответу, я думаю, стоит упомянуть, что другие контейнеры IoC, такие как Castle Windsor, позволяют вам вводить зависимости, используя такие свойства, как OP. Это не требовало бы, чтобы они были частью подписи ctor. – nozzleman
ОК, я посмотрю на Unity. Благодарю. – hyperar
Unity также выполняет впрыск свойств. Тем не менее, вы заметите, что он назначил своих сеттеров частным лицам, поэтому я предполагаю, что он не хочет допускать случайную перезапись этих ссылок, и в этом случае встраивание конструкции - это путь вперед. – toadflakz