Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

MemberInfo.GetCustomAttributes Método (Boolean)

Quando substituído em uma classe derivada, retorna uma matriz contendo Tudo atributos Personalizars.

Namespace:  System.Reflection
Assembly:  mscorlib (em mscorlib. dll)

public abstract Object[] GetCustomAttributes(
	bool inherit
)

Parâmetros

inherit
Tipo: System.Boolean
Especifica se pesquisar cadeia de herança a este membro para localizar os atributos.

Valor de retorno

Tipo: System.Object[]
Uma matriz que contém Tudo atributos Personalizars, ou uma matriz com zero elementos se há atributos são definidos.

Implementa

ICustomAttributeProvider.GetCustomAttributes(Boolean)
_MemberInfo.GetCustomAttributes(Boolean)

ObservaçãoObservação:

Do .NET Framework versão 2.0, esse método retorna atributos de segurança em métodos, construtores e tipos se eles estiverem armazenados no novo Formatarar de metadados.Conjuntos de módulos (assemblies) compilados com a versão 2.0 use este Formatarar.Dinâmico assemblies and assemblies compilado with Earlier Versions of the .NET Framework Use the old formato XML.See Emissor atributos de segurança declarativa.

O exemplo a seguir define um atributo Personalizar e associa o atributo MyClass.MyMethod, recupera o atributo em tempo de execução e exibe o resultado.

using System;
using System.Reflection;

// Define a custom attribute with one named parameter.
[AttributeUsage(AttributeTargets.All)]
public class MyAttribute : Attribute
{
    private string myName;
    public MyAttribute(string name)
    {
        myName = name;
    }
    public string Name
    {
        get
        {
            return myName;
        }
    }
}

// Define a class that has the custom attribute associated with one of its members.
public class MyClass1
{
    [MyAttribute("This is an example attribute.")]
    public void MyMethod(int i)
    {
        return;
    }
}

public class MemberInfo_GetCustomAttributes
{
    public static void Main()
    {
        try
        {
            // Get the type of MyClass1.
            Type myType = typeof(MyClass1);
            // Get the members associated with MyClass1.
            MemberInfo[] myMembers = myType.GetMembers();

            // Display the attributes for each of the members of MyClass1.
            for(int i = 0; i < myMembers.Length; i++)
            {
                Object[] myAttributes = myMembers[i].GetCustomAttributes(true);
                if(myAttributes.Length > 0)
                {
                    Console.WriteLine("\nThe attributes for the member {0} are: \n", myMembers[i]);
                    for(int j = 0; j < myAttributes.Length; j++)
                        Console.WriteLine("The type of the attribute is {0}.", myAttributes[j]);
                }
            }
        }
        catch(Exception e)
        {
            Console.WriteLine("An exception occurred: {0}", e.Message);
        }
    }
}


import System.*;
import System.Reflection.*;

// Define a custom attribute with one named parameter.
/** @attribute AttributeUsage(AttributeTargets.All)
 */
public class MyAttribute extends Attribute
{
    private String myName;

    public MyAttribute(String name)
    {
        myName = name;
    } //MyAttribute

    /** @property 
     */
    public String get_Name()
    {
        return myName;
    } //get_Name
} //MyAttribute

// Define a class that has the custom attribute associated 
// with one of its members.
public class MyClass1
{
    /** @attribute MyAttribute("This is an example attribute.")
     */
    public void MyMethod(int i)
    {
        return;
    } //MyMethod
} //MyClass1

public class MemberInfo_GetCustomAttributes
{
    public static void main(String[] args)
    {
        try {
            // Get the type of MyClass1.
            Type myType = MyClass1.class.ToType();

            // Get the members associated with MyClass1.
            MemberInfo myMembers[] = myType.GetMembers();

            // Display the attributes for each of the members of MyClass1.
            for (int i = 0; i < myMembers.length; i++) {
                Object myAttributes[] = ((MemberInfo)myMembers.get_Item(i)).
                    GetCustomAttributes(true);
                if (myAttributes.length > 0) {
                    Console.WriteLine("\nThe attributes for the member "
                        + "{0} are: \n", myMembers.get_Item(i));
                    for (int j = 0; j < myAttributes.length; j++) {
                        Console.WriteLine("The type of the attribute is {0}.", 
                            myAttributes.get_Item(j));
                    }
                }
            }
        }
        catch (System.Exception e) {
            Console.WriteLine("An exception occurred: {0}", e.get_Message());
        }
    } //main
} //MemberInfo_GetCustomAttributes


Contribuições da comunidade

ADICIONAR
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2014 Microsoft