Para documentação em português do Brasil, acesse PT-BR
For English documentation, access EN-US

PT-BR

O componente DotNetMax.Type.Enumerator fornece uma nova abordagem para o tratamento de enumeradores no que diz respeito à sua conversão para seus valores ou para as descrições associadas a eles.

Hoje é comum que em projetos orientados a objetos, enumeradores simples sejam utilizados em lugar de tabelas básicas (ex: Permissões, Sexo do Usuário, Tipos de Documento, entre outros) e quando isso ocorre é comum criar-se os famosos "translators", que nada mais são que classes com capacidade de converter um enum em texto ou valor e seu valor ou texto novamente para o enum.

É neste cenário que o DotNetMax.Type.Enumerator será utilizado em todo seu potencial.

1-) Dependências

  • DotNetMax.Type.Enumerator.dll

2-) Visão Geral

O DotNetMax.Type.Enumerator é um componente que faz uso da capacidade generics do .net framework.
Seus principais método são:
Método Parâmetro(s) Funcionalidade
GetDescription() Valor de enum Retorna a descrição referente ao item do enum
GetValue() Valor do enum Retorna o valor correspondente ao item do enum
Translate() Valor do enum ou descrição do enum Retorna o item de enum que corresponde ao valor informado
GetAllValues() Tipo do Retorno Retorna uma coleção de todos os itens do enum com 2 valores (a escolha do programador. A chave, descrição e/ou valor dos itens de enum)

3-) Formatando Corretamento um Enum

Para utilizar o componente é necessário que o enum seja corretamente formatado com os atributos necessários.
São eles:
DotNetMax.Type.Enumerator.Attribute.EnumeratorDescription Informa ao componente que o enum é passível de tradução
DotNetMax.Type.Enumerator.Attribute.EnumeratorDescriptionItem Informa ao componente qual a descrição do item do enum


Além destes, é necessário que seja atribuido aos itens do enum um valor numérico (byte, int, etc). Em nosso exemplo estamos usando o tipo byte.

[DotNetMax.Type.Enumerator.Attribute.EnumeratorDescription]
public enum Permissao : byte
{
    [DotNetMax.Type.Enumerator.Attribute.EnumeratorDescriptionItem("Administrador")] 
    Admin = 0,

    [DotNetMax.Type.Enumerator.Attribute.EnumeratorDescriptionItem("Leitor")] 
    Read = 5,

    [DotNetMax.Type.Enumerator.Attribute.EnumeratorDescriptionItem("Escritor")] 
    Write = 9
}

4-) O Construtor do Componente

Vamos ver como utilizar nosso construtor genérico para o enum

// Cria Tradutor de Enum
DotNetMax.Type.Enumerator.EnumeratorTranslator<Permissao> tradutorParaPermissao = new DotNetMax.Type.Enumerator.EnumeratorTranslator<Permissao>();


Observe que na declaração do tradutor utilizamos a declaração generics do enum Permissão: <Permissao>
Desta forma o componente saberá que tudo o que for feio neste objeto será a respeito do enum Permissão que criamos para nosso exemplo.

5-) Utilizando o Componente

// Declara o Enumerador de Exemplo com Permissão de Admin
Permissao perm = Permissao.Admin;

// Cria Tradutor de Enum
DotNetMax.Type.Enumerator.EnumeratorTranslator<Permissao> tradutorParaPermissao = new DotNetMax.Type.Enumerator.EnumeratorTranslator<Permissao>();

// Recupera Descrição do Enum
string descricao = tradutorParaPermissao.GetDescription(perm);

// Recupera Valor do Enum
byte valor = (byte) tradutorParaPermissao.GetValue(perm);

            

// Converte um Valor em Enum (O Valor da Permissão de Read é 5)
Permissao permissaoDeLeitor = tradutorParaPermissao.Translate(5);

// Converte a Descrição em Enum (A Descrição da Permissão de Admin é Administrador)
Permissao permissaoDeAdministrar = tradutorParaPermissao.Translate("Administrador");


// Recupera a Chave e Descrição dos Enumeradores
Dictionary<string, string> chavesEDescricoes = tradutorParaPermissao.GetAllValues(DotNetMax.Type.Enumerator.Enum.RetreaveModel.KeyAndDescription);

// Recupera a Chave e Valores dos Enumeradores
Dictionary<string, string> chavesEValores = tradutorParaPermissao.GetAllValues(DotNetMax.Type.Enumerator.Enum.RetreaveModel.KeyAndValue);

// Recupera a Descrição e os Valores dos Enumeradores
Dictionary<string, string> descricaoEValores = tradutorParaPermissao.GetAllValues(DotNetMax.Type.Enumerator.Enum.RetreaveModel.DescriptionAndValue);

EN-US

English Documentations is under construction

Last edited Jun 30, 2010 at 11:35 AM by guibacellar, version 4

Comments

No comments yet.