Type.FilterAttribute Type.FilterAttribute Type.FilterAttribute Type.FilterAttribute Field

定義

表示用在屬性 (Attribute) 上的成員篩選條件。Represents the member filter used on attributes. 此欄位為唯讀。This field is read-only.

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方法,並顯示指定的成員和其屬性。The following example gets the FilterAttribute delegate, passes it as a parameter to the FindMembers method, and displays the specified members and their attributes.

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
Imports System.Reflection
Imports System.Security
Imports Microsoft.VisualBasic

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 'Main
End Class 'MyFilterAttributeSample

備註

此欄位保留所使用的委派的參考FindMembers方法。This field holds a reference to the delegate used by the FindMembers method. 這個委派所封裝方法會採用兩個參數: 第一個是MemberInfo物件的第二個則ObjectThe method encapsulated by this delegate takes two parameters: the first is a MemberInfo object and the second is an Object. 這個方法會判斷是否MemberInfo物件名稱符合所指定的準則ObjectThe method determines whether the MemberInfo object matches the criteria specified by the Object. Object可能會指派任何一種類別欄位的值FieldAttributesMethodAttributes,或MethodImplAttributesThe Object may be assigned the value of any one of the fields on the classes FieldAttributes, MethodAttributes, or MethodImplAttributes.

例如,Object可以從欄位的值指派給FieldAttributes例如 Public。For example, the Object can be assigned the value of a field from FieldAttributes such as Public. 在此情況下,當FilterAttribute叫用委派時,它會傳回true所表示的方法時,才MemberInfo物件以公用欄位屬性裝飾中繼資料中。In that case, when the FilterAttribute delegate is invoked, it will return true only if the method represented by the MemberInfo object is decorated with the public field attribute in metadata.

適用於

另請參閱