次の方法で共有


Module.IsDefined メソッド

指定した attributeType がこのモジュールで定義されているかどうかを判断します。

Public Overridable Function IsDefined( _
   ByVal attributeType As Type, _   ByVal inherit As Boolean _) As Boolean Implements ICustomAttributeProvider.IsDefined
[C#]
public virtual bool IsDefined(TypeattributeType,boolinherit);
[C++]
public: virtual bool IsDefined(Type* attributeType,boolinherit);
[JScript]
public function IsDefined(
   attributeType : Type,inherit : Boolean) : Boolean;

パラメータ

  • attributeType
    カスタム属性を適用する対象の型オブジェクト。
  • inherit
    この型のオブジェクトでは、この引数は無視されます。

戻り値

このモジュールで attributeType のインスタンスが 1 つ以上定義されている場合は true 。それ以外の場合は false

実装

ICustomAttributeProvider.IsDefined

例外

例外の種類 条件
ArgumentNullException attributeType が null 参照 (Visual Basic では Nothing) です。

使用例

[Visual Basic, C#, C++] IsDefined メソッドを使用する例を次に示します。

 
Imports System
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 = [Assembly].GetExecutingAssembly().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 'Main
    End Class 'MyMainClass

    '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 'New
    End Class 'MySimpleAttribute
End Namespace 'ReflectionModule_Examples

[C#] 
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 = Assembly.GetExecutingAssembly().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;
        }
    }
}

[C++] 
#using <mscorlib.dll>

using namespace System;
using namespace System::Reflection;

namespace ReflectionModule_Examples
{
   //A very simple custom attribute.
   [AttributeUsage(AttributeTargets::Class | AttributeTargets::Module)]
   public __gc class MySimpleAttribute : public Attribute
   {
   private:
      String* name;

   public:
      MySimpleAttribute(String* newName)
      {
         name = newName;
      }
   };
}

//Define a module-level attribute.
[module: ReflectionModule_Examples::MySimpleAttribute(S"module-level")];

int main()
{
   System::Reflection::Module* moduleArray[];

   moduleArray = Assembly::GetExecutingAssembly()->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(S"ReflectionModule_Examples.MySimpleAttribute");
   Console::WriteLine(S"IsDefined(MySimpleAttribute) = {0}", __box(myModule->IsDefined(myType, false)));
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

Module クラス | Module メンバ | System.Reflection 名前空間