Как я могу перевести мою программную конфигурацию WCF в app.config - PullRequest
2 голосов
/ 15 апреля 2010

У меня есть собственный сервер WCF с жестко заданными конфигурациями. сервер работал нормально, пока я не попытался реализовать некоторые новые функциональные возможности конфигурации (изменил порты, добавил ssl), новый параметр конфигурации не работал (urrr ....), и мне трудно определить, где проблемы в моем коде.

Вместо того, чтобы копаться в коде, который объявляет объект WCF, я подумал о другом подходе:

Есть ли способ выгрузить в файл эти жестко запрограммированные конфигурации WCF (все) в текстовый файл app.config, как после загрузки всех конфигураций? это позволит мне легко просматривать все настройки ..

ммм ... кстати, кто-нибудь знает способ, который сделает перевод в противоположном направлении? Конфиг для кода.

Любой совет будет приветствоваться!

предложение

1 Ответ

0 голосов
/ 18 января 2011

Я не думаю, что вы найдете автоматический способ вывести куда-нибудь свой код c # / vb и сконфигурировать вашу конфигурацию в XML-схему файла конфигурации (и наоборот), однако, если вы спросите мое личное мнение, если вы У вас нет веских оснований для жесткого кодирования вашей конфигурации в вашем коде (даже если вы сделаете это, я бы это переосмыслил), вы должны убрать конфигурацию wcf из своего кода. Конфигурация не является ответственностью кода. Это конфигурация, это означает, что если вам нужно изменить «конфигурацию», вам не нужна новая сборка.

В вашем коде вы должны просто сконцентрироваться на логике потребления услуг, оставив конфигурацию бэкэнд-движку позаботиться об этом. Помните, что иногда вам может потребоваться изменить некоторые параметры, такие как регулирование службы, максимальный / минимальный размер буфера, квота MaxItemsInObjectGraph и т. Д. Если это жестко запрограммировано, означает новое развертывание. Если в конфигурационном файле или другом хранилище, означает простое изменение конфигурации.

Если у вас есть вся ваша конфигурация в файле конфигурации, когда вы перемещаете свой код из среды в среду (Dev, DIT, QA, UAT, Pre-Prod, Production), вы можете при необходимости иметь разные настройки между средами ( поскольку используемый вами номер порта уже используется или заблокирован в брандмауэре). Команда управления выпуском просто настроит его должным образом в файле конфигурации.

Если вам нужен больший контроль над конфигурацией службы, вы можете рассмотреть возможность создания фабричной службы для своих служб, где вы получите всю свою конфигурацию из централизованного места (база данных, файл XML и т. Д.), И вы настроите свой код на -The лета. * * 1007

Надеюсь, это поможет ...

...