ГенераторКодаКонфигурации

ConfigurationCodeGenerator — это средство, которое можно использовать для обеспечения видимости пользовательских реализаций каналов в системе конфигурации. Это позволяет пользователям настраиваемого канала настраивать канал с помощью файла .config так же, как они настраивают системную привязку, например NetTcpBinding или пользовательскую привязку с помощью .TcpTransportBindingElement

При написании пользовательского канала и его предоставлении модели программирования с помощью нового BindingElement или Binding, необходимо создать набор классов, чтобы сделать BindingElement или Binding конфигурируемыми с помощью файла .config. Вы можете использовать средство ConfigurationCodeGenerator для создания этих классов и улучшения взаимодействия клиента.

Создать инструмент

  1. Чтобы создать решение, следуйте инструкциям по созданию примеров Windows Communication Foundation.

  2. Создание решения создает один файл: ConfigurationCodeGenerator.exe. Файл SampleRun.cmd содержит пример командной строки, показывающий, как использовать это средство для генерации классов для примера Transport: UDP.

Чтобы запустить средство

  1. В командной строке введите следующее, если у вас есть как пользовательский BindingElement тип, так и пользовательский Binding тип:

    ConfigurationCodeGenerator.exe /be:YourCustomBindingElementTypeName /sb:YourCustomStdBindingTypeName /dll:TheAssemblyWhereTheseTypesAreDefined
    

    Или введите следующий тип, если у вас есть только настраиваемый BindingElement тип:

    ConfigurationCodeGenerator.exe /be:YourCustomBindingElementTypeName /dll: TheAssemblyWhereThisTypeIsDefined
    

    Или введите следующий тип, если у вас есть только настраиваемый Binding тип:

    ConfigurationCodeGenerator.exe /sb:YourCustomStdBindingTypeName /dll:TheAssemblyWhereThisTypeIsDefined
    

    Команда создает три .cs файла для BindingElement (если задан параметр /be): пять .cs файлов для стандартного Binding (если задан параметр /sb: option), а также файл .xml.

    1. Если вы использовали параметр /be, один из файлов с кодом .cs реализует элемент привязки BindingElementExtensionSection. Этот код делает ваш BindingElement доступным для системы конфигурации, чтобы другие пользовательские привязки могли использовать элемент привязки. Другие файлы имеют классы, представляющие значения по умолчанию и константы. Файлы содержат //TODO примечания, чтобы напомнить вам об обновлении значений по умолчанию.

    2. Если вы указали параметр /sb, два файла .cs реализуют StandardBindingElement и StandardBindingCollectionElement соответственно, что обеспечивает стандартную привязку к системе конфигурации. Другие файлы имеют классы, представляющие значения по умолчанию и константы. Файлы содержат //TODO примечания, чтобы напомнить вам об обновлении значений по умолчанию.

      Если вы указали параметр /sb:, CodeToAddTo<YourStdBinding>.cs имеет код, который вы должны вручную добавить в класс, который реализует вашу стандартную привязку.

    Файл SampleConfig.xml содержит код конфигурации, который необходимо добавить в файл конфигурации, который регистрирует обработчики, определенные на предыдущем шаге 1 или 2.