Criando atributos personalizados (guia de programação translation from VPE for Csharp)
Você pode criar seu próprios s atributo personalizado, definindo um atributo classe, uma classe que deriva direta ou indiretamente de Attribute, o que dificulta identificar atributo definições de metadados rápida e fácil. Suponha que você queira marca classes e estruturas com o nome do programador que escreveu classe ou struct.Você pode definir um personalizado Author atributo classe:
[System.AttributeUsage(System.AttributeTargets.Class |
System.AttributeTargets.Struct)
]
public class Author : System.Attribute
{
private string name;
public double version;
public Author(string name)
{
this.name = name;
version = 1.0;
}
}
O nome de classe é o nome do atributo, Author. Ele é derivado de System.Attribute, portanto, é um personalizado atributo classe. Parâmetros do construtor são parâmetros posicionais do atributo personalizado, nesse caso, name, e quaisquer campos públicos de leitura / gravar ou propriedades são nomeadas parâmetros, nesse caso, version é o único chamado parâmetro. Observe o uso do AttributeUsage atributo para fazer o Author válido somente no atributo class e struct declarações.
Você pode usar esse novo atributo da seguinte maneira:
[Author("H. Ackerman", version = 1.1)]
class SampleClass
{
// H. Ackerman's code goes here...
}
AttributeUsage possui um parâmetro nomeado, AllowMultiple, com o qual você pode tornar um atributo personalizado uso único ou multiuse.
[System.AttributeUsage(System.AttributeTargets.Class |
System.AttributeTargets.Struct,
AllowMultiple = true) // multiuse attribute
]
public class Author : System.Attribute
[Author("H. Ackerman", version = 1.1)]
[Author("M. Knott", version = 1.2)]
class SampleClass
{
// H. Ackerman's code goes here...
// M. Knott's code goes here...
}
Observação: |
---|
Se sua classe de atributos contém uma propriedade, essa propriedade deve ser leitura-gravar.Não há suporte para propriedades somente gravar em classes de atributo em translation from VPE for Csharp. |
Consulte também
Conceitos
Referência
Reflexo (guia de programação C#)
Atributos (guia de programação C#)
Usando atributos (guia de programação translation from VPE for Csharp)
Destinos de atributo disambiguating (guia de programação translation from VPE for Csharp)
Acessando atributos com reflexo (C# programação guia)
Date |
History |
Motivo |
---|---|---|
Julho de 2008 |
Observação adicional sobre o suporte de propriedade. |
Correção de bug do conteúdo. |