Module.IsDefined(Type, Boolean) 方法  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回一个值,该值指示是否已将指定的特性类型应用于此模块。
public:
 virtual bool IsDefined(Type ^ attributeType, bool inherit);public virtual bool IsDefined (Type attributeType, bool inherit);abstract member IsDefined : Type * bool -> bool
override this.IsDefined : Type * bool -> boolPublic Overridable Function IsDefined (attributeType As Type, inherit As Boolean) As Boolean参数
- attributeType
- Type
要测试的自定义属性的类型。
- inherit
- Boolean
对于该类型的对象,将忽略此自变量。
返回
如果一个或多个 attributeType 实例已应用于此模块,则为 true;否则为 false。
实现
例外
              attributeType 为 null。
              attributeType 不是由运行时提供的 Type 对象。 例如,attributeType 是一个 TypeBuilder 对象。
示例
以下示例演示如何使用 IsDefined 方法。
using namespace System;
using namespace System::Reflection;
namespace ReflectionModule_Examples
{
   //A very simple custom attribute.
   [AttributeUsage(AttributeTargets::Class|AttributeTargets::Module)]
   public ref class MySimpleAttribute: public Attribute
   {
   private:
      String^ name;
   public:
      MySimpleAttribute( String^ newName )
      {
         name = newName;
      }
   };
}
//Define a module-level attribute.
[module:ReflectionModule_Examples::MySimpleAttribute("module-level")];
int main()
{
   array<System::Reflection::Module^>^moduleArray;
   moduleArray = ReflectionModule_Examples::MySimpleAttribute::typeid->Assembly->GetModules( false );
   
   //In a simple project with only one module, the module at index
   // 0 will be the module containing these classes.
   System::Reflection::Module^ myModule = moduleArray[ 0 ];
   Type^ myType;
   myType = myModule->GetType( "ReflectionModule_Examples.MySimpleAttribute" );
   Console::WriteLine( "IsDefined(MySimpleAttribute) = {0}", myModule->IsDefined( myType, false ) );
}
using System;
using System.Reflection;
//Define a module-level attribute.
[module: ReflectionModule_Examples.MySimpleAttribute("module-level")]
namespace ReflectionModule_Examples
{
    class MyMainClass
    {
        static void Main()
        {
            Module[] moduleArray;
            
            moduleArray = typeof(MyMainClass).Assembly.GetModules(false);
            
            //In a simple project with only one module, the module at index
            // 0 will be the module containing these classes.
            Module myModule = moduleArray[0];
            Type myType;
            myType = myModule.GetType("ReflectionModule_Examples.MySimpleAttribute");
            Console.WriteLine("IsDefined(MySimpleAttribute) = {0}", myModule.IsDefined(myType, false));
        }
    }
    //A very simple custom attribute.
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Module)]
    public class MySimpleAttribute : Attribute
    {
        private string name;
        public MySimpleAttribute(string newName)
        {
            name = newName;
        }
    }
}
Imports System.Reflection
'Define a module-level attribute.
<Module: ReflectionModule_Examples.MySimpleAttribute("module-level")> 
'Define a module-level attribute.
Namespace ReflectionModule_Examples
    Class MyMainClass
        Shared Sub Main()
            Dim moduleArray() As [Module]
            moduleArray = GetType(MyMainClass).Assembly.GetModules(False)
            'In a simple project with only one module, the module at index
            ' 0 will be the module containing these classes.
            Dim myModule As [Module] = moduleArray(0)
            Dim myType As Type
            myType = myModule.GetType("ReflectionModule_Examples.MySimpleAttribute")
            Console.WriteLine("IsDefined(MySimpleAttribute) = {0}", myModule.IsDefined(myType, False))
        End Sub
    End Class
    'A very simple custom attribute.
    <AttributeUsage(AttributeTargets.Class Or AttributeTargets.Module)> _
    Public Class MySimpleAttribute
        Inherits Attribute
        Private name As String
        Public Sub New(ByVal newName As String)
            name = newName
        End Sub
    End Class
End Namespace 'ReflectionModule_Examples