Artigo


Obtendo todas actions de um serviço WCF

11/8/2009

Quando se trabalha com WCF você precisa de uma interface que irá definir o contrato do serviço a ser disponibilizado com esta tecnologia. Essa interface deve ser marcada com o atributo ServiceContract, e cada método desta interface que deverá estar disponível pelo serviço deve ser marcado com o atributo OperationContract.
 
Se você estiver muito confuso sobre o que falei até o momento aconselho que dê uma lida neste artigo de introdução aos serviços em WCF: Introdução ao WCF.
 
O atributo OperationContract contém uma série de proriedades, uma delas é a Action (detalhes). A propriedade Action é usada para identificar de forma única a operação equivalente. No projeto em que estou trabalhando aparece a necessidade se determinar, em tempo de execução, qual a lista completa de actions das operações disponíveis em um dado contrato de serviço (a interface).
 
Após algumas análises conseguimos o seguinte código que, via reflexão, nos retorna uma lista de strings com todas actions de um dado serviço:
 

public static IList ObtenhaTodasOperacoes()

{

    var actions = new List();

    foreach (var method in typeof(T).GetMethods())

    {

        var att = (OperationContractAttribute)Attribute.GetCustomAttribute(method, typeof(OperationContractAttribute));         

    if (att != null) actions.Add(att.Action);    

 }     

    return actions;

}

Na verdade a implementação está mais relacionada a Reflections do que a WCF, porém é uma utilidade que os usuários de WCF podem precisar no decorrer de seu projeto.
 

É isso!



Frederico Policarpo Martins - frederico.sistemas@gmail.com

Formação:

Graduado em Ciência da Computação pela Universidade Federal de Goiás - UFG [Ano de graduação: 2007]

Certificações:

 

MCTS: .NET Framework 2.0 Windows Applications

MCTS: .NET Framework 3.5 Windows Workflow Foundation Applications

MCTS: .NET Framework 3.5 Windows Presentations Foundation Applications

Interesses:

Desenvolvimento de Software, Projeto de Software, Arquitetura de Software, Sistemas Desktop, Sistemas Web, Sistemas Distribuídos, Gerência de Projeto, Consultoria em Desenvolvimento, Metodologias Ágeis, Bancos de Dados, Sistemas Operacionais.

Experiênicia Profissionais:

  • Estágio de 02/2005 a 02/2006 na EXIS LTDA : Desenvolvimento de Software com tecnologias Java
  • Desde 01/2007 Desenvolvedor da Fibonacci - Soluções Ágeis.



| | Mais


Comentários

Qual a sua opinião?
Faça o login no topo do site ou cadastre-se rapidamente.



2003-2009 DevGoiás.NET. Todos os direitos reservados.