Module.GetCustomAttributes メソッド
カスタム属性を返します。
オーバーロードの一覧
すべてのカスタム属性を返します。
[Visual Basic] Overloads Public Overridable Function GetCustomAttributes(Boolean) As Object() Implements ICustomAttributeProvider.GetCustomAttributes
[C++] public: virtual Object* GetCustomAttributes(bool) __gc[];
[JScript] public function GetCustomAttributes(Boolean) : Object[];
指定された型のカスタム属性を取得します。
[C#] public virtual object[] GetCustomAttributes(Type, bool);
[C++] public: virtual Object* GetCustomAttributes(Type*, bool) __gc[];
[JScript] public function GetCustomAttributes(Type, Boolean) : Object[];
使用例
[Visual Basic, C#, C++] 指定した型で、指定した検索条件と一致するモジュールの名前を表示する例を次に示します。
[Visual Basic, C#, C++] メモ ここでは、GetCustomAttributes のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。
Imports System
Imports System.Reflection
' Define a module-level attribute.
<Module: ReflectionModule_Examples.MySimpleAttribute("module-level")>
' This code assumes that the root namespace is set to empty("").
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 attributes() As Object
' Get only MySimpleAttribute attributes for this module.
attributes = myModule.GetCustomAttributes( _
myModule.GetType("ReflectionModule_Examples.MySimpleAttribute", _
False, False), True)
Dim o As [Object]
For Each o In attributes
Console.WriteLine("Found this attribute on myModule: {0}", o.ToString())
Next o
End Sub 'Main
End Class 'MyMainClass
' Define 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];
object[] attributes;
//Get only MySimpleAttribute attributes for this module.
attributes = myModule.GetCustomAttributes(
myModule.GetType("ReflectionModule_Examples.MySimpleAttribute", false, false),
true);
foreach(Object o in attributes)
{
Console.WriteLine("Found this attribute on myModule: {0}", o.ToString());
}
}
}
// Define 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;
using namespace System::Collections;
namespace ReflectionModule_Examples
{
// Define 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];
Object* attributes[];
//Get only MySimpleAttribute attributes for this module.
attributes = myModule->GetCustomAttributes(myModule->GetType(S"ReflectionModule_Examples.MySimpleAttribute", false, false),
true);
IEnumerator* myEnum = attributes->GetEnumerator();
while (myEnum->MoveNext()) {
Object* o = __try_cast<Object*>(myEnum->Current);
Console::WriteLine(S"Found this attribute on myModule: {0}", o);
}
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。