ConfigurationName


O WCF permite a configuração de um serviço de forma declarativa e imperativa, assim como já falei aqui. Quando optamos pela forma declarativa, todas as configurações do serviço/cliente serão feitas em um arquivo de configuração (App.config/Web.config), e com isso, sempre temos que referenciar o serviço e o contrato com o seu nome completo, ou seja, incluindo o namespace até eles.

Para facilitar isso, temos a propriedade ConfigurationName, exposta através dos atributos ServiceBehaviorAttribute e ServiceContractAttribute, onde podemos definir um “alias” para o serviço e o contrato, respectivamente. Com isso, evitamos especificar o nome completo até os tipos. O código abaixo ilustra a utilização dessa propriedade nos dois atributos:

[ServiceContract(ConfigurationName = “MeuContrato”)]
public interface IContrato
{
    //…
}

[ServiceBehavior(ConfigurationName = “MeuServico”)]
public class Servico : IContrato
{
    //…
}

E, se repararmos no arquivo de configuração agora, teremos:

<services>
  <service name=”MeuServico”>
    <host>
      <baseAddresses>
        <add baseAddress=”http://localhost:9383″/&gt;
      </baseAddresses>
    </host>
    <endpoint address=”srv” binding=”basicHttpBinding” contract=”MeuContrato” />
  </service>
</services>

É importante dizer que isso não interfere no nome do serviço e do contrato que será exposto através do documento WSDL. Essas configurações são apenas características locais dos arquivos de configuração do serviço ou do cliente.

Publicidade

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s