Type.FilterAttribute 字段
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示用在特性上的成员筛选器。 此字段为只读。
public: static initonly System::Reflection::MemberFilter ^ FilterAttribute;
public static readonly System.Reflection.MemberFilter FilterAttribute;
staticval mutable FilterAttribute : System.Reflection.MemberFilter
Public Shared ReadOnly FilterAttribute As MemberFilter
字段值
示例
下面的示例获取 FilterAttribute
委托,将其作为参数传递给 FindMembers 方法,并显示指定的成员及其属性。
using namespace System;
using namespace System::Collections;
using namespace System::Reflection;
using namespace System::Security;
int main()
{
try
{
MemberFilter^ myFilter = Type::FilterAttribute;
Type^ myType = System::String::typeid;
array<MemberInfo^>^myMemberInfoArray = myType->FindMembers( static_cast<MemberTypes>(MemberTypes::Constructor | MemberTypes::Method), static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Static | BindingFlags::Instance), myFilter, MethodAttributes::SpecialName );
IEnumerator^ myEnum = myMemberInfoArray->GetEnumerator();
while ( myEnum->MoveNext() )
{
MemberInfo^ myMemberinfo = safe_cast<MemberInfo^>(myEnum->Current);
Console::Write( "\n {0}", myMemberinfo->Name );
Console::Write( " is a {0}", myMemberinfo->MemberType );
}
}
catch ( ArgumentNullException^ e )
{
Console::Write( "ArgumentNullException : {0}", e->Message );
}
catch ( SecurityException^ e )
{
Console::Write( "SecurityException : {0}", e->Message );
}
catch ( Exception^ e )
{
Console::Write( "Exception : {0}", e->Message );
}
}
using System;
using System.Reflection;
using System.Security;
public class MyFilterAttributeSample
{
public static void Main()
{
try
{
MemberFilter myFilter = Type.FilterAttribute;
Type myType = typeof(System.String);
MemberInfo[] myMemberInfoArray = myType.FindMembers(MemberTypes.Constructor
|MemberTypes.Method, BindingFlags.Public | BindingFlags.Static |
BindingFlags.Instance, myFilter, MethodAttributes.SpecialName);
foreach (MemberInfo myMemberinfo in myMemberInfoArray)
{
Console.Write ("\n" + myMemberinfo.Name);
Console.Write (" is a " + myMemberinfo.MemberType.ToString());
}
}
catch(ArgumentNullException e)
{
Console.Write("ArgumentNullException : " + e.Message);
}
catch(SecurityException e)
{
Console.Write("SecurityException : " + e.Message);
}
catch(Exception e)
{
Console.Write("Exception :" + e.Message);
}
}
}
Imports System.Reflection
Imports System.Security
Public Class MyFilterAttributeSample
Public Shared Sub Main()
Try
Dim myFilter As MemberFilter = Type.FilterAttribute
Dim myType As Type = GetType(System.String)
Dim myMemberInfoArray As MemberInfo() = myType.FindMembers(MemberTypes.Constructor Or MemberTypes.Method, BindingFlags.Public Or BindingFlags.Static Or BindingFlags.Instance, myFilter, MethodAttributes.SpecialName)
Dim myMemberinfo As MemberInfo
For Each myMemberinfo In myMemberInfoArray
Console.Write(ControlChars.newline + myMemberinfo.Name)
Console.Write(" is a " + myMemberinfo.MemberType.ToString())
Next myMemberinfo
Catch e As ArgumentNullException
Console.Write("ArgumentNullException : " + e.Message.ToString())
Catch e As SecurityException
Console.Write("SecurityException : " + e.Message.ToString())
Catch e As Exception
Console.Write("Exception :" + e.Message.ToString())
End Try
End Sub
End Class
注解
此字段包含对方法使用的委托的引用 FindMembers 。 此委托封装的方法采用两个参数:第一个是 MemberInfo 对象,第二个参数是 Object
。 方法确定 MemberInfo
对象是否与指定的条件匹配 Object
。 Object
可以为类、或上的任何一个字段分配值 FieldAttributes MethodAttributes MethodImplAttributes 。
例如,可以为 Object
指定字段的值, FieldAttributes
例如 Public。 在这种情况下,当 FilterAttribute
调用委托时,仅当 true
对象表示的方法 MemberInfo
使用元数据中的公共字段特性修饰时,它才会返回。