ConfigurationCodeGenerator
O ConfigurationCodeGenerator é uma ferramenta que você pode usar para expor suas implementações de canal personalizado para o sistema de configuração. Isso permite que os usuários do seu canal personalizado configurem seu canal usando um arquivo .config da mesma forma que configurariam uma associação fornecida pelo sistema, como NetTcpBinding
ou uma associação personalizada usando o TcpTransportBindingElement
.
Quando você escreve um canal personalizado e o expõe ao modelo de programação usando um novo BindingElement
ou Binding
, você deve criar um conjunto de classes para tornar o BindingElement
ou Binding
configurável usando um arquivo .config. Você pode usar a ferramenta ConfigurationCodeGenerator para gerar essas classes e melhorar a experiência do cliente.
Para criar a ferramenta
Para criar a solução, siga as instruções em Criando os exemplos do Windows Communication Foundation.
A criação da solução gera um arquivo: ConfigurationCodeGenerator.exe. O arquivo SampleRun.cmd tem uma linha de comando de exemplo que mostra como usar essa ferramenta para gerar as classes para o exemplo Transport: UDP .
Para executar a ferramenta
No prompt de comando, digite o seguinte se você tiver um tipo personalizado
BindingElement
e um tipo personalizadoBinding
:ConfigurationCodeGenerator.exe /be:YourCustomBindingElementTypeName /sb:YourCustomStdBindingTypeName /dll:TheAssemblyWhereTheseTypesAreDefined
Ou digite o seguinte se você tiver apenas um tipo personalizado
BindingElement
:ConfigurationCodeGenerator.exe /be:YourCustomBindingElementTypeName /dll: TheAssemblyWhereThisTypeIsDefined
Ou digite o seguinte se você tiver apenas um tipo personalizado
Binding
:ConfigurationCodeGenerator.exe /sb:YourCustomStdBindingTypeName /dll:TheAssemblyWhereThisTypeIsDefined
O comando gera três arquivos .cs para o
BindingElement
(se você especificou a opção /be:), cinco arquivos .cs para o padrãoBinding
(se você especificou a opção /sb:) e um arquivo .xml.Se você usou a opção /be, um dos arquivos .cs implementará o
BindingElementExtensionSection
para seu elemento de ligação. Esse código expõe vocêBindingElement
ao sistema de configuração, para que outras ligações personalizadas possam usar seu elemento de ligação. Os outros arquivos têm classes que representam padrões e constantes. Os arquivos têm//TODO
comentários para lembrá-lo de atualizar os valores padrão.Se você especificou a opção /sb, dois dos arquivos .cs implementam a
StandardBindingElement
e aStandardBindingCollectionElement
respectivamente, o que expõe sua ligação padrão ao sistema de configuração. Os outros arquivos têm classes que representam padrões e constantes. Os arquivos têm//TODO
comentários para lembrá-lo de atualizar os valores padrão.Se você especificou a opção /sb:, o CodeToAddTo<YourStdBinding>.cs tem um código que você deve adicionar manualmente à classe que implementa sua associação padrão.
O arquivo SampleConfig.xml contém o código de configuração que você deve adicionar ao arquivo de configuração que registra os manipuladores definidos na etapa 1 ou 2 anterior.