Attribute::GetCustomAttribute Method (Module^, Type^, Boolean)
Retrieves a custom attribute applied to a module. Parameters specify the module, the type of the custom attribute to search for, and an ignored search option.
Assembly: mscorlib (in mscorlib.dll)
public: static Attribute^ GetCustomAttribute( Module^ element, Type^ attributeType, bool inherit )
Parameters
- element
-
Type:
System.Reflection::Module^
An object derived from the Module class that describes a portable executable file.
- attributeType
-
Type:
System::Type^
The type, or a base type, of the custom attribute to search for.
- inherit
-
Type:
System::Boolean
This parameter is ignored, and does not affect the operation of this method.
Return Value
Type: System::Attribute^A reference to the single custom attribute of type attributeType that is applied to element, or null if there is no such attribute.
| Exception | Condition |
|---|---|
| ArgumentNullException | element or attributeType is null. |
| ArgumentException | attributeType is not derived from Attribute. |
| AmbiguousMatchException | More than one of the requested attributes was found. |
The following code example illustrates the use of the GetCustomAttribute method taking a Module as a parameter.
using namespace System; using namespace System::Diagnostics; // Add the Debuggable attribute to the module. [module:Debuggable(true,false)]; namespace IsDef2CS { ref class DemoClass { public: static void Main() { // Get the class type to access its metadata. Type^ clsType = DemoClass::typeid; // See if the Debuggable attribute is defined for this module. bool isDef = Attribute::IsDefined( clsType->Module, DebuggableAttribute::typeid ); // Display the result. Console::WriteLine( "The Debuggable attribute {0} " "defined for Module {1}.", isDef ? (String^)"is" : "is not", clsType->Module->Name ); // If the attribute is defined, display the JIT settings. if ( isDef ) { // Retrieve the attribute itself. DebuggableAttribute^ dbgAttr = dynamic_cast<DebuggableAttribute^>(Attribute::GetCustomAttribute( clsType->Module, DebuggableAttribute::typeid )); if ( dbgAttr != nullptr ) { Console::WriteLine( "JITTrackingEnabled is {0}.", dbgAttr->IsJITTrackingEnabled ); Console::WriteLine( "JITOptimizerDisabled is {0}.", dbgAttr->IsJITOptimizerDisabled ); } else Console::WriteLine( "The Debuggable attribute " "could not be retrieved." ); } } }; } /* * Output: * The Debuggable attribute is defined for Module IsDef2CS.exe. * JITTrackingEnabled is True. * JITOptimizerDisabled is False. */
Available since 1.1
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0