This documentation is archived and is not being maintained.

Attribute::IsDefined Method (Module, Type)

Determines whether any custom attributes of a specified type are applied to a module. Parameters specify the module, and the type of the custom attribute to search for.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public:
static bool IsDefined(
	Module^ element, 
	Type^ attributeType
)

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.

Return Value

Type: System::Boolean
true if a custom attribute of type attributeType is applied to element; otherwise, false.

ExceptionCondition
ArgumentNullException

element or attributeType is nullptr.

ArgumentException

attributeType is not derived from Attribute.

The ancestors of element are not searched for custom attributes.

The following code example illustrates the use of IsDefined, 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.
 */

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0
Show: