Экспериментируя с этот вопрос о коллекциях в Spring.NET, я обнаружил, что Spring может внедрять зависимость, используя частный сеттер. У меня два вопроса:
Документация говорит:
Setter-based DI is realized by calling setter methods on your objects...
Конечно, он явно не говорит о методах установки общественный, но это то, что я всегда предполагал. Я использую версию 1.0.2 на .NET 3.5.





Дон,
нет, это не задокументировано asfaik - в основном потому, что мы его не рекомендуем. Эта функция предназначена для поддержки редких случаев при работе с устаревшими / сторонними библиотеками.
Вам следует использовать только общедоступные сеттеры, которые вы также можете вызывать из своих модульных тестов!
hth, Эрих
Версия Spring для Java использует отражение, которое может получить доступ к этим частным сеттерам. Это хорошо, потому что вы не хотите заставлять кого-то изменять неизменяемый объект только для удовлетворения Spring.
Лично я предпочитаю использовать инъекцию конструктора, когда могу.
Спасибо! Возможно, стоит задокументировать и явно обескуражить. Обратите внимание, что добавление частного установщика фактически изменяет семантику внедрения коллекции с добавления на замену.