|
![]() |
Neste artigo vou apresentar os conceitos sobre Atributos na linguagem VB .NET, sua definição e afinal para que serve um atributo. |
![]() |
Metadados
Vamos começar apresentando o conceito de metadados. Afinal o que é são metadados ?
Podemos pensar em Metadados como sendo o sangue da plataforma. NET. Muitos dos recursos que usamos todos os dias durante o tempo de projeto, durante o tempo de compilação, e durante o tempo de execução, se baseiam na presença de metadados. Os Metadados permitem a um Assembly e os tipos dentro do Assembly se autodescreverem.
Assim, os metadados são informações sobre os dados, ou seja, informações sobre os tipos, o código, assembly e assim por diante - que é armazenada junto com seu programa.
Nota: Metadado = informação sobre uma informação.
E onde entram os atributos ?
Podemos adicionar metadados em seu código através dos atributos.
Atributos
Os Atributos são um mecanismo para a adição de metadados, tais como instruções do compilador e outros dados sobre seus dados, métodos e classes, para o próprio programa.
Os Atributos são inseridos nos metadados e são visíveis através ILDasm e outras ferramentas para leitura de metadados.
Assim, um atributo é um objeto que representa os dados que você deseja associar com um elemento no seu programa. O elemento ao qual você anexa um atributo é conhecido como o target (alvo) desse atributo.
Exemplos :
1-
atributo: <Serializable()> Pode ser associado a uma classe para indicar que a classe alvo pode ser serializada (persistida). 2- atributo: <WebMethod()> Pode ser associado a um método para expor o método como um Web Service XML. 3- atributo: <Obsolete()> Pode ser associado com tipos marcando-os como desatualizados. 4- atributo: <CLSCompliant(True)> Pode ser associado a um assembly, module, tipos e membros para tornar o código compatível com outra linguagem. |
Depois que um atributo estiver associado a uma entidade do programa, o atributo pode ser consultado em tempo de execução usando uma técnica chamada Reflection.
Atributos podem ser de dois tipos: intrínsecos e personalizado.
Se você procurar na CLR, você vai encontrar um grande número de atributos. Alguns atributos são aplicados a uma assembly, outros a uma classe ou interface, e alguns, como o <WebMethod()>, a membros da classe.
Atributos têm as seguintes propriedades:
Para exemplificar eu vou mostrar o uso do atributo <Obsolete()>.
Recursos usados:
Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.
Criando a solução no VS Community
Abra o VS Community 2015 e clique em New Project;
Selecione a linguagem Visual Basic e o template Console Application;
Informe o nome VBNET_Atributos e clique no botão OK;
No menu Project clique em Add Class e informe o nome Calculadora.vb e inclua o código abaixo nesta classe:
|
Esta classe possui dois métodos Somar() sobrecarregados onde um recebe dois parâmetros e outro pode receber qualquer quantidade de parâmetros.
Observe que o atributo <Obsolete()> foi aplicado ao método Somar(n1,n2) que recebe dois parâmetros para indicar que ela esta desatualizada (Deprecated). E isso esta sendo indicado pelo compilador.
O atributo Absolete() possui
3 construtores:
1- O construtor sem parâmetros |
Agora ao tentar usar o método Somar(n1,n2) iremos receber um alerta do compilador informando que o método esta desatualizado.
Podemos fornecer mais informações aos usuários da classe Calculadora usando o construtor do atributo <Obsolete(message as String)> que agora inclui uma mensagem ao usuário :
<Obsolete("Use o método Somar(byval numeros as List(Of integer)")>
Public Shared Function Somar(ByVal n1 As Integer, ByVal n2 As Integer) As Integer
Return n1 + n2
End Function
|
Agora ao tentar utilizar o método iremos obter o seguinte resultado:
Mesmo com o alerta ainda podemos usar o método em ambos os casos anteriores.
Para evitar que o um usuário utilize o método da classe vamos usar outro construtor do atributo <Obsolete(message as string, [error] as Boolean)>:
![]() |
Dessa forma você não vai conseguir usar essa sobrecarga do método Somar() pois isso foi definido no atributo <Obsolete()> aplicado ao método.
Para cada atributo que você desejar usar consulte a documentação correspondente.
Aguarde em breve um artigo sobre como criar atributos personalizados.
Porque todo aquele que faz o mal odeia a
luz, e não vem para a luz, para que as suas obras não sejam reprovadas.
Mas quem pratica a verdade vem para a luz, a fim de que as suas obras sejam
manifestas, porque são feitas em Deus.
João 3:20,21
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#