Esporta (0) Stampa
Espandi tutto

Metodo Attribute.GetCustomAttributes (Module, Type, Boolean)

Recupera una matrice degli attributi personalizzati applicata a un modulo. I parametri consentono di specificare il modulo, il tipo dell'attributo personalizzato di cui eseguire la ricerca e un'opzione di ricerca ignorata.

Spazio dei nomi: System
Assembly: mscorlib (in mscorlib.dll)

public static Attribute[] GetCustomAttributes (
	Module element,
	Type attributeType,
	bool inherit
)
public static Attribute[] GetCustomAttributes (
	Module element, 
	Type attributeType, 
	boolean inherit
)
public static function GetCustomAttributes (
	element : Module, 
	attributeType : Type, 
	inherit : boolean
) : Attribute[]

Parametri

element

Oggetto derivato dalla classe Module che descrive un file eseguibile portabile.

attributeType

Tipo o tipo base dell'attributo personalizzato da cercare.

inherit

Questo parametro viene ignorato e non influisce sul funzionamento di questo metodo.

Valore restituito

Matrice Attribute contenente gli attributi personalizzati di tipo attributeType applicati a element oppure matrice vuota se non sono presenti tali attributi.

Tipo di eccezioneCondizione

ArgumentNullException

element o attributeType è riferimento null (Nothing in Visual Basic).

ArgumentException

attributeType non deriva da Attribute.

Il valore restituito contiene gli attributi personalizzati dei predecessori di element se inherit è true.

Nell'esempio di codice riportato di seguito viene illustrato l'utilizzo di GetCustomAttributes, accettando Module come parametro.

using System;
using System.Reflection;
using System.ComponentModel;

// Assign some attributes to the module.
[module:Description("A sample description")]

// Set the module's CLSCompliant attribute to false
// The CLSCompliant attribute is applicable for /target:module.
[module:CLSCompliant(false)]

namespace CustAttrs2CS {
    class DemoClass {
        static void Main(string[] args) {
            Type clsType = typeof(DemoClass);
            // Get the Module type to access its metadata.
            Module module = clsType.Module;

            // Iterate through all the attributes for the module.
            foreach(Attribute attr in Attribute.GetCustomAttributes(module)) {
                // Check for the Description attribute.
                if (attr.GetType() == typeof(DescriptionAttribute))
                    Console.WriteLine("Module {0} has the description " +
                        "\"{1}\".", module.Name, 
                        ((DescriptionAttribute)attr).Description);
                // Check for the CLSCompliant attribute.
                else if (attr.GetType() == typeof(CLSCompliantAttribute))
                    Console.WriteLine("Module {0} {1} CLSCompliant.",
                        module.Name,
                        ((CLSCompliantAttribute)attr).IsCompliant ? 
                            "is" : "is not");
            }
        }
    }
}

/*
 * Output:
 * Module CustAttrs2CS.exe is not CLSCompliant.
 * Module CustAttrs2CS.exe has the description "A sample description".
 */

package CustAttrs2JSL; 
import System.*;
import System.Reflection.*;
import System.ComponentModel.*;

// Assign some attributes to the module.
/** @module Description("A sample description")
 */

// Set the module's CLSCompliant attribute to false
// The CLSCompliant attribute is applicable for /target:module.
/** @module CLSCompliant(false)
 */
class DemoClass
{
    public static void main(String[] args)
    {
        Type clsType = DemoClass.class.ToType();

        // Get the Module type to access its metadata.
        Module module = clsType.get_Module();

        // Iterate through all the attributes for the module.
        for (int iCtr = 0; iCtr < Attribute.GetCustomAttributes(module).
            get_Length(); iCtr++) {
            Attribute attr = (Attribute)Attribute.GetCustomAttributes(module).
                get_Item(iCtr);
            // Check for the Description attribute.
            if (attr.GetType().Equals(DescriptionAttribute.class.ToType())) {
                Console.WriteLine("Module {0} has the description " + 
                    "\"{1}\".", module.get_Name(),
                    ((DescriptionAttribute)attr).get_Description());
            }
            // Check for the CLSCompliant attribute.
            else {
                if (attr.GetType().Equals(CLSCompliantAttribute.class.
                    ToType())) {
                    Console.WriteLine("Module {0} {1} CLSCompliant.",
                        module.get_Name(), (((CLSCompliantAttribute)attr).
                        get_IsCompliant()) ? "is" : "is not");
                }
            }
        }
    } //main
} //DemoClass   

/*
    Output:
    Module CustAttrs2CS.exe is not CLSCompliant.
    Module CustAttrs2CS.exe has the description "A sample description".
 */

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0 1.1 1.0

.NET Compact Framework

Supportato in: 2.0 1.0

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft