.NET - развертывание клиента WCF без app.config

Я пишу клиента в службу WCF. Это отдельное приложение в более крупной системе, которое включает модули, написанные на C #, C ++, VB и Java. Все приложения имеют общие механизмы настройки и регистрации, независимо от того, на каком языке они были написаны.

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

Показательный пример - клиентский app.config в настоящее время выглядит так:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <bindings>
      <customBinding>
        <binding name="WSHttpBinding_ICourierService">
          <security defaultAlgorithmSuite="Default" authenticationMode="SecureConversation"
            ...
          </security>
          <textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16"
            messageVersion="Default" writeEncoding="utf-8">
            <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
              maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
          </textMessageEncoding>
          <httpTransport manualAddressing="false"
            ...
            useDefaultWebProxy="true" />
        </binding>
      </customBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost:57102/MyService.svc"
        ...
        >
        <identity>
          <dns value="localhost" />
        </identity>
      </endpoint>
    </client>
  </system.serviceModel>
</configuration>

Это набор непрозрачных шаблонов, с которыми сисадминам не придется иметь дело. Большая часть этого была вставлена Visual Studio. Я сделал одно изменение в файле - я увеличил максимальный размер в<readerQuotas/>, Но это изменение, с которым я не хочу связываться сисадминами. И нет ничего другого в файле, с которым я хочу связываться сисадминами, кроме<endpoint address=""/>.

И я извлекаю адрес конечной точки из общесистемной конфигурации и устанавливаю его в коде. В этом файле нет ничего, что могло бы редактироваться пользователем.

Итак, как мне настроить вещи так, чтобы они мне не нужны?

Могу ли я встроить его как ресурс в сборку и подключить к процессу загрузки app.config, как это делается с необходимыми DLL?

Является ли единственным выбором для создания кода для настройки вещей, как я использую код для установки адреса конечной точки? Создать необходимые привязки и т. Д. В коде? Как же тогда узнать, какой код писать, учитывая эти куски непрозрачного XML?

Ответы на вопрос(2)

Ваш ответ на вопрос