как ввести зависимости в конструкторах в Windows Forms

в asp.net-mvc у меня есть Виндзорская Фабрика Контроллера, которая вводит все зависимости в контроллеры, но как Вы получаете это в Windows Forms?

например, если имеют этот Form1, как я собираюсь получить экземпляр Form1, я должен использовать твердость (который называют ServiceLocator и антишаблоном некоторые люди)?

public class Form1
{
   private IBarService _barService;

   public Form1(IBarService barService)
   {
       _barService = barService;
   }
}
9
задан Omu 5 February 2010 в 19:50
поделиться

2 ответа

В качестве ссылки используется

и . Просмотр ссылок в http://php.net/manual/en/language.references.php :

Ссылки в PHP являются средством получить доступ к одному и тому же содержимому переменной по разные имена. Они не похожи на С указатели; например, нельзя выполнить с их помощью арифметику указателя, они не являются фактическими адресами памяти, и так далее.

-121--1638822-

Если дерево является рекурсивно определенной структурой данных, которая может быть пустой или узлом с левым и правым поддеревьями (например, деревья поиска или куча), то естественное определение состоит в том, чтобы назначить 0 пустому дереву и 1 + высоту верхнего поддерева непустому дереву.

Если дерево является графом, то натуральное определение является самым длинным путем от корня к листу, поэтому дерево только корня имеет глубину 0. Обычно ты даже не считаешь пустые деревья в этом случае.

-121--2320265-

Да, в program.cs вы должны сделать windsor resolve Form1 . Для просмотра формы в конструкторе необходимо добавить пустой конструктор и украсить его атрибутом Устаревший .

5
ответ дан 4 December 2019 в 19:33
поделиться

Использование Внедрение конструктора для форм (или других представлений в других платформах пользовательского интерфейса) часто проблематично, потому что дизайнер Visual Studio ожидает и предполагает конструктор по умолчанию.

В любом случае форма или другой визуальный элемент управления действительно должны быть тупым представлением без поведения. Его цель - отобразить все данные, которые вы к нему привязываете. Использование функций привязки данных часто помогает ограничить вас этой пассивной формой отображения.

Это означает, что вам нужен какой-то Контроллер , который может создавать экземпляр представления (формы) и связывать с ним источник данных.

Это намного проще сделать с помощью такой технологии, как WPF, но это также возможно с Windows Forms. Для вдохновения того, как это сделать с помощью Windows Forms, я предлагаю вам взглянуть на (ныне удаленный) Composite Application Block - он слишком сложный, но он должен дать вам кое-что идеи, как самому реализовать нечто подобное.

7
ответ дан 4 December 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: