Как объединить используемые во время разработки компоненты с внедрением зависимости

Да, если вы используете git, просто следуйте документации. Theres чертовски много Документации, написанной на этом. Вы не можете пойти не так, если вы будете следовать этому. Просто начните сначала, если вам нужно. Ссылка: https://help.github.com/articles/connecting-to-github-with-ssh/

9
задан Wim Coenen 28 April 2010 в 12:01
поделиться

1 ответ

Этот же вопрос мучил меня долгое время, пока я не осознал, что думаю об этом неправильно. AFAIR, единственная причина для создания реализации IComponent состоит в том, чтобы предоставить функции времени разработки - реализация IComponent не влияет на время выполнения.

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

Таким образом, ограничение на конструктор на самом деле является благословением, поскольку оно инструктирует вас переосмыслить свой дизайн. Control - это программа, не зависящая от источника данных, которая отображает данные и взаимодействует с ними определенным образом. Пока эти данные соответствуют определенным интерфейсам и т. Д., Control работает. Как поступают эти данные, Control не имеет значения, да и не должно. Было бы ошибкой позволить Control контролировать то, как данные загружаются и изменяются.

В WPF это явно намного яснее, чем в Windows Forms: вы даете определенному элементу управления DataContext и привязываете свойства элемента управления к его членам. DataContext. DataContext (который может быть любым объектом) происходит извне Control; это ответственность или ваш уровень презентации.

В Windows Forms вы все равно можете сделать то же самое, назначив контекст данных элементу управления. По сути, это Property Injection - просто имейте в виду, что вам не следует вводить сервисы; вам следует ввести данные .

В общем, я бы не согласился ни с одним из ваших предложений. Вместо этого позвольте элементу управления иметь одно или несколько свойств, которые позволяют назначать данные элементу управления, и используйте привязку данных для привязки к этим данным. Внутри реализации элемента управления будьте готовы справиться с ситуацией, когда нет данных: это будет происходить каждый раз, когда элемент управления размещается в VS во время разработки. Шаблон «Нулевой объект» очень полезен для реализации такой устойчивости.

Затем настройте контекст данных из ваших контроллеров. Это способ MVC: элемент управления - это представление, но у вас должен быть отдельный контроллер, который может создавать и назначать модель для представления.

Таким образом, я бы не согласился ни с одним из ваших предложений. Вместо этого позвольте элементу управления иметь одно или несколько свойств, которые позволяют назначать данные элементу управления, и используйте привязку данных для привязки к этим данным. Внутри реализации элемента управления будьте готовы справиться с ситуацией, когда нет данных: это будет происходить каждый раз, когда элемент управления размещается в VS во время разработки. Шаблон «Нулевой объект» очень полезен для реализации такой устойчивости.

Затем настройте контекст данных из ваших контроллеров. Это способ MVC: элемент управления - это представление, но у вас должен быть отдельный контроллер, который может создавать и назначать модель для представления.

Таким образом, я бы не согласился ни с одним из ваших предложений. Вместо этого позвольте элементу управления иметь одно или несколько свойств, которые позволяют назначать данные элементу управления, и используйте привязку данных для привязки к этим данным. Внутри реализации элемента управления будьте готовы справиться с ситуацией, когда нет данных: это будет происходить каждый раз, когда элемент управления размещается в VS во время разработки. Шаблон «Нулевой объект» очень полезен для реализации такой устойчивости.

Затем настройте контекст данных из ваших контроллеров. Это способ MVC: элемент управления - это представление, но у вас должен быть отдельный контроллер, который может создавать и назначать модель для представления.

и используйте привязку данных для привязки к этим данным. Внутри реализации элемента управления будьте готовы справиться с ситуацией, когда нет данных: это будет происходить каждый раз, когда элемент управления размещается в VS во время разработки. Шаблон «Нулевой объект» очень полезен для реализации такой устойчивости.

Затем настройте контекст данных из ваших контроллеров. Это способ MVC: элемент управления - это представление, но у вас должен быть отдельный контроллер, который может создавать и назначать модель для представления.

и используйте привязку данных для привязки к этим данным. Внутри реализации элемента управления будьте готовы справиться с ситуацией, когда нет данных: это будет происходить каждый раз, когда элемент управления размещается в VS во время разработки. Шаблон «Нулевой объект» очень полезен для реализации такой устойчивости.

Затем настройте контекст данных из ваших контроллеров. Это способ MVC: элемент управления - это представление, но у вас должен быть отдельный контроллер, который может создавать и назначать модель для представления.

6
ответ дан 4 December 2019 в 23:40
поделиться
Другие вопросы по тегам:

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