ConfigurationCodeGenerator
ConfigurationCodeGenerator - это средство, позволяющее предоставлять системе конфигурации реализации пользовательских каналов. Это позволяет пользователям пользовательских каналов настраивать каналы с помощью файла конфигурации, как это происходит в случае с системными привязками, например NetTcpBinding
, или пользовательскими привязками с помощью элемента TcpTransportBindingElement
.
При разработке пользовательского канала и его предоставлении в модели программирования с помощью нового элемента BindingElement
или Binding
необходимо создать набор классов, чтобы BindingElement
или Binding
можно было настраивать с помощью файла конфигурации. Средство ConfigurationCodeGenerator позволяет создать эти классы и сделать работу пользователей более удобной.
Построение средства
Чтобы создать решение, следуйте инструкциям по созданию примеров Windows Communication Foundation.
В результате построения решения формируется один файл: ConfigurationCodeGenerator.exe. Файл SampleRun.cmd содержит пример командной строки, в которой показано, как использовать это средство для создания классов для примера Транспорта: UDP .
Запуск средства
В командной строке введите следующую команду, если имеется пользовательский тип
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:), а также XML-файл.Если используется параметр /be, один из файлов CS реализует
BindingElementExtensionSection
для элемента привязки. Этот код предоставляет элементBindingElement
для системы конфигурации, чтобы элементом привязки могли пользоваться другие пользовательские привязки. В других файлах содержатся классы, представляющие значения по умолчанию и константы. В файлах имеются комментарии//TODO
напоминающие разработчикам о необходимости обновить значения по умолчанию.Если задан параметр /sb, два файла CS реализуют элементы
StandardBindingElement
иStandardBindingCollectionElement
соответственно, в результате чего стандартная привязка предоставляется системе конфигурации. В других файлах содержатся классы, представляющие значения по умолчанию и константы. В файлах имеются комментарии//TODO
напоминающие разработчикам о необходимости обновить значения по умолчанию.Если вы указали /sb: параметр CodeToAddTo<YourStdBinding>.cs имеет код, который необходимо добавить вручную в класс, реализующий стандартную привязку.
Файл SampleConfig.xml file содержит код конфигурации, который необходимо добавить в файл конфигурации, регистрирующий обработчики, определенные ранее на шагах 1 и 2.