- Люди говорят, что библиотеки не должны иметь конфигурационные файлы.
- Я не могу передать аргументы в свой класс службы WCF со своего хоста (но я могу от клиента).
- Я не хочу сохранять конфигурацию на клиенте.
- Что мне делать?
ответ
Что вы спрашиваете? Вы говорите о настройках службы (стороне сервера) или клиенте?
Почему вы не можете использовать файлы конфигурации на стороне клиента, как в других приложениях? Это встроенный, предпочтительный способ делать вещи - зачем настаивать на том, чтобы не использовать его?
Итак, что же вы действительно спрашиваете? Или какая проблема, что вы пытаетесь решить, действительно?
для обслуживания (на стороне сервера): хранить ваши привязки, поведения конечных точек служб и т.д. в web.config (если хостинг в IIS) или в app.config вашего узла службы (если NT Сервис или консольное приложение)
для клиента: сохраните конфигурацию в app.config основного приложения, которое использует вашу библиотеку. Если вы хотите, вы можете предоставить готовую «client.config» и файлы «bindings.config», а затем просто добавить
<system.serviceModel> <bindings configSource="bindings.config" /> <client configSource="client.config" /> </system.serviceModel>
к app.config вашего клиентского приложения - не получить намного проще, чем это, действительно!
Я не, если я подхожу на этот вопрос правильно ...
Первый пункт совершенно произвольном, и звучит немного фашист, или Большие если вы приехали из Великобритании. Много разных типов библиотек поставляются с конфигурационным файлом. Каким другим способом вы это сделаете? Как это будет работать, если вы не настроили его, а именно то, на чем построена модель конфигурации .NET.
Народ должен прекратить фокусироваться на баффах архитектуры, P & P механики и пуристы программирования, которые часто принимают экстремальные взгляды на основе лучших или незначительных принципов дизайна, прежде всего, говоря, что вы должны это делать и делать это.
Если вы хотите скрыть свой конфигурационный файл, зашифруйте его. Если вы не хотите этого делать, но хотите, чтобы они были доступны авторизованным пользователям, используйте защищенное хранилище.
Bob.
Нельзя сказать, что нет никаких аргументов против этого, но установка необходимой конфигурации библиотеки в файле конфигурации потребляющего кода приводит к уменьшению количества поддерживаемых файлов. Один файл конфигурации для каждого приложения. –
Мой вопрос не касался конфигурации конечных точек, но ваш ответ был полезен для меня. Я просто не мог использовать параметр configSource, потому что моя Visual Studio говорит мне: Warning Атрибут 'configSource' не объявлен. –
Да, но это «ложный позитив» - Visual Studio жалуется, но это работает на ралли - поверьте мне, мои системы используют это КАЖДЫЙ день в производстве! –