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 ファミリ