2012-04-26 3 views
9

У меня есть собственная служба WCF C#, которая создает 20+ конечных точек для различных целей. Каждый из них сконфигурирован в самом коде с несколькими базовыми элементами конфигурации в app.config службы, такой как порт и адрес. Услуга отлично работает для тестируемых клиентов, но не получила широкого распространения.Плюсы и минусы файла конфигурации wcf vs в конфигурации кода

Я был немного скучным стандартным подходом к файлу wcf, потому что я боялся, что конечный пользователь испортит вещи и, следовательно, сделает все в коде.

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

+0

Мне действительно хотелось бы получить окончательный ответ на этот вопрос, но у меня возникает соблазн предположить, что он немного открыт для этого. Меня, однако, интересуют мнения по этому вопросу. – Jodrell

ответ

5

Одним из основных преимуществ WCF является абстракция деталей соединения от кода. Если вам нужно изменить какой-либо из параметров службы, сделайте это с помощью web.config можно с большей готовностью и без перекомпиляции. Возможно, вам потребуется изменить «порт и адрес», например. Если вы делаете это из кода, вам нужно будет перестроить, что может быть непрактичным. Кроме того, я не уверен, почему конечный пользователь будет возиться с web.config, если это действительно необходимо.

Короче говоря, если у вас нет оснований не использовать файлы конфигурации, вы, вероятно, должны использовать их, чтобы получить полное преимущество абстракции, предоставляемой WCF.

3

Вы должны задать себе несколько вопросов

  • делают разные разработчики имеют разные значения на своей машине?
  • будет ли кто-то другой, который не работает с C#, изменить эти значения настроек? (например, администратор)
  • Должны ли быть скорректированы определенные значения (например, размер сообщения) в дальнейшем?

Если да, то ответ на любой из этих вопросов вам необходимо переместить настройки в файл .config. Если вы беспокоитесь, что клиенты, которые понимают другие настройки, собираются испортить ваши настройки wcf при аварии, вы всегда можете отделить настройки, добавив атрибут configSource в ваш файл web.config или app.config для каждого тега и поместите части своей конфигурации в отдельные файлы в подкаталоге, чтобы уменьшить вероятность случайного изменения.

0

Просто

Если вы используете файл .config тогда вы сможете изменить конфигурацию после компиляции кода. Это может быть хорошим или плохим, в зависимости от вашей ситуации.

Смежные вопросы