Module.GetCustomAttributes 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回自定义属性。
重载
| 名称 | 说明 |
|---|---|
| GetCustomAttributes(Boolean) |
返回所有自定义属性。 |
| GetCustomAttributes(Type, Boolean) |
获取指定类型的自定义属性。 |
GetCustomAttributes(Boolean)
- Source:
- Module.cs
- Source:
- Module.cs
- Source:
- Module.cs
- Source:
- Module.cs
- Source:
- Module.cs
返回所有自定义属性。
public:
virtual cli::array <System::Object ^> ^ GetCustomAttributes(bool inherit);
public virtual object[] GetCustomAttributes(bool inherit);
abstract member GetCustomAttributes : bool -> obj[]
override this.GetCustomAttributes : bool -> obj[]
Public Overridable Function GetCustomAttributes (inherit As Boolean) As Object()
参数
- inherit
- Boolean
对于此类型的对象,忽略此参数。
返回
Object[]
包含所有自定义属性的类型 Object 数组。
实现
示例
以下示例显示与指定搜索条件匹配的模块名称。
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];
object[] attributes;
attributes = myModule.GetCustomAttributes(true);
foreach(Object o in attributes)
{
Console.WriteLine("Found this attribute on myModule: {0}.", o.ToString());
}
}
}
//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")>
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 attributes() As Object
attributes = myModule.GetCustomAttributes(True)
Dim o As [Object]
For Each o In attributes
Console.WriteLine("Found this attribute on myModule: {0}", o.ToString())
Next o
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
适用于
GetCustomAttributes(Type, Boolean)
- Source:
- Module.cs
- Source:
- Module.cs
- Source:
- Module.cs
- Source:
- Module.cs
- Source:
- Module.cs
获取指定类型的自定义属性。
public:
virtual cli::array <System::Object ^> ^ GetCustomAttributes(Type ^ attributeType, bool inherit);
public virtual object[] GetCustomAttributes(Type attributeType, bool inherit);
abstract member GetCustomAttributes : Type * bool -> obj[]
override this.GetCustomAttributes : Type * bool -> obj[]
Public Overridable Function GetCustomAttributes (attributeType As Type, inherit As Boolean) As Object()
参数
- attributeType
- Type
要获取的属性的类型。
- inherit
- Boolean
对于此类型的对象,忽略此参数。
返回
Object[]
包含指定类型 Object 的所有自定义属性的类型数组。
实现
例外
attributeType 是 null。
attributeType 不是 Type 运行时提供的对象。 例如, attributeType 是一个 TypeBuilder 对象。
示例
以下示例显示与指定搜索条件匹配的指定类型的模块名称。
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];
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;
}
}
}
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 = 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 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
End Class
' 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
End Class
End Namespace 'ReflectionModule_Examples