Я начинаю использовать виндзор замка; и любопытно познакомил его с книгой Apress Pro Mvc. В проекте, над которым я работаю; Я использую фабрику контроллера Castlewindsor вместо фабрики контроллера mvc; поэтому я могу иметь параметризованные конструкторы, и я могу вводить зависимости. Есть ли способ сказать фабрике windsorcontroller ввести значения в свойства класса контроллера, не пройдя через конструктор? Причина, по которой я хочу это сделать, заключается в том, что у меня есть зависимость Logging; Зависимость от Emailler; Зависимость базы данных; Тема двигателя dEpendency; и я не хочу использовать этот параметр параметров в конструкторе.CastleWindsor тоже заполняет поля класса
ответ
По умолчанию, когда Windsor разрешает реализацию службы, он заполняет все свойства публичными сеттерами, которые он может удовлетворить.
Однако обратите внимание, что когда-нибудь имеет смысл поставить разрешение зависимостей в конструкторе, тем самым гарантируя, что любой экземпляр всегда будет находиться в допустимом состоянии. Рассмотрим сценарий тестирования подразделения, где человек, написавший тест, сходит с ума из-за необходимости знать, какие зависимости должны быть предоставлены. Когда все зависимости попадают в c'tor, тестер не будет иметь выбора, кроме как предоставить тестируемому экземпляру все необходимые зависимости (в виде заглушек или макетов).
Во всяком случае, как для вашего вопроса, Windsor поддержки C'tor и инъекционного свойства по умолчанию
Виндзорский замок будет автоматически заполнять любые свойства с общественными сеттерами, что знает, как заполнить.
Это означает, что если у вас есть класс
public MyClass {
public SomeDependency {get; set;}
}
До тех пор, пока контейнер сконфигурирован, чтобы знать, как решить SomeDependency он будет пытаться решить и внедрить его.
Иногда я обнаружил, что это поведение по умолчанию является проблемой. This facility даст вам более тонкий контроль над процессом.
- 1. Capybara не заполняет поля
- 2. Capybara неправильно заполняет поля
- 3. Autofill заполняет неправильные поля
- 4. .click класса получить ввод тоже
- 5. CastleWindsor 3.0 и DefaultServiceHostFactory.RegisterContainer()?
- 6. CastleWindsor. BuildDatabaseConfiguration & Kernel
- 7. EntityFramework 5.0 с CastleWindsor
- 8. Capybara не заполняет поля ввода
- 9. Symfony2 Form заполняет поля данными
- 10. Каким образом Guice заполняет аннотированные поля
- 11. Разрешение зависимостей с использованием CastleWindsor
- 12. Структура проекта с использованием CastleWindsor
- 13. CastleWindsor BeginScope аналог в Ninject
- 14. Клавиатура JQuery заполняет вход вместо текстового поля?
- 15. автоматически заполняет поля, используя раскрывающийся список
- 16. Mongoid критерии результат не заполняет все поля
- 17. MVC 3 .NET заполняет поля динамически
- 18. JS onclick изображения заполняет поля формы
- 19. Использование Autocomplete заполняет более одного поля
- 20. Почему MongooseJS правильно заполняет мои поля?
- 21. My response.jsp не заполняет поля должным образом
- 22. Iphone SQlite - Заполняет таблицу из текстового поля
- 23. VB.NET заполняет поля объекта при создании
- 24. Переопределить, как BsonRecord заполняет свои поля
- 25. Capybara не заполняет поля дублирующими ярлыками
- 26. Форма с angularjs не заполняет все поля
- 27. django admin заполняет поля встроенными моделями
- 28. Class decorator - модификация значения поля класса изменяет значение в базовом классе тоже
- 29. Реализация CastleWindsor с представлением модели Presenter (MVP)
- 30. Преобразование CastleWindsor-код для Unity-кода
и если он не заполняет свойства, а конструктор; где я должен смотреть? – user149383
Я бы сказал - разместите свой код в группе пользователей Windsor. Вы, вероятно, быстро получите помощь –