Esta página foi útil?
Seus comentários sobre este conteúdo são importantes. Queremos saber sua opinião.
Comentários adicionais?
1500 caracteres restantes
Exportar (0) Imprimir
Expandir Tudo
Expandir Minimizar
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Método Type.FindMembers

Retorna uma matriz filtrada de objetos de MemberInfo do tipo de membro especificado.

Namespace:  System
Assembly:  mscorlib (em mscorlib.dll)

public virtual MemberInfo[] FindMembers(
	MemberTypes memberType,
	BindingFlags bindingAttr,
	MemberFilter filter,
	Object filterCriteria
)

Parâmetros

memberType
Tipo: System.Reflection.MemberTypes
Um objeto por que indica o tipo de membro a ser pesquisado.
bindingAttr
Tipo: System.Reflection.BindingFlags
Um bitmask composto de um ou mais BindingFlags que especificam como a pesquisa é realizada.
- ou -
Zero, para retornar null.
filter
Tipo: System.Reflection.MemberFilter
O delegado que torna as comparações, retornando true se o membro atualmente que é correspondências inspecionadas filterCriteria e false de outra forma. Você pode usar FilterAttribute, FilterName, e os representantes de FilterNameIgnoreCase fornecidos por essa classe. O primeiro usa os campos de FieldAttributes, de MethodAttributes, e de MethodImplAttributes como critérios de pesquisa, e os outros dois delegados usam objetos de String como os critérios de pesquisa.
filterCriteria
Tipo: System.Object
Os critérios de pesquisa que determinam se um membro é retornado na matriz de MemberInfo objeto.
Os campos de FieldAttributes, de MethodAttributes, e de MethodImplAttributes podem ser usados em conjunto com o representante de FilterAttribute fornecido por essa classe.

Valor de retorno

Tipo: System.Reflection.MemberInfo[]
Uma matriz de objetos filtrada de MemberInfo do tipo de membro especificado.
- ou -
Uma matriz vazia do tipo MemberInfo, se Type atual não tem os membros de tipo memberType que correspondem aos critérios de filtro.

Implementações

_Type.FindMembers(MemberTypes, BindingFlags, MemberFilter, Object)

ExceçãoCondição
ArgumentNullException

filter é null.

Este método pode ser substituído por uma classe derivada.

Entre os membros estão propriedades, campos, métodos, eventos etc.

Os seguintes sinalizadores de filtro BindingFlags podem ser usados para definir quais membros devem ser incluídos na pesquisa:

  • Você deve especificar BindingFlags.Instance ou BindingFlags.Static para obter um retorno.

  • Especifique BindingFlags.Instance para incluir os membros da instância na pesquisa.

  • Especifique BindingFlags.Static para incluir os membros estáticos na pesquisa.

  • Especifique BindingFlags.Public para incluir membros públicos na pesquisa.

  • Especifique BindingFlags.NonPublic para incluir membros não públicos (ou seja, membros particulares, internos e protegidos) na pesquisa.

Os seguintes sinalizadores de modificador BindingFlags podem ser usados para alterar como a pesquisa funciona:

  • BindingFlags.DeclaredOnly para procurar apenas os membros declarados no Type, e não os membros que foram simplesmente herdados.

Consulte System.Reflection.BindingFlags para maiores informações.

Os valores válidos para MemberType são definidos em MemberInfo. Se tal membro for encontrado, uma matriz vazia será retornada.

Para obter o inicializador da classe .cctor () que usa esse método, você deve especificar BindingFlags.Static | BindingFlags.NonPublic (BindingFlags.StaticOrBindingFlags.NonPublic no Visual Basic). Também é possível obter o inicializador da classe usando-se a propriedade TypeInitializer.

Se Type atual representa um parâmetro de tipo de um tipo genérico ou de um método genérico, o FindMembers processa todos os membros declarados pela restrição da classe e por restrições da interface de parâmetro de tipo.

O exemplo a seguir localiza todos os membros em uma classe que correspondem aos critérios de pesquisa especificados, e exibe os membros correspondentes.


using System;
using System.Reflection;

class MyFindMembersClass
{
    public static void Main()
    {
        Object objTest = new Object();
        Type objType = objTest.GetType ();
        MemberInfo[] arrayMemberInfo;
        try
        {
            //Find all static or public methods in the Object class that match the specified name.
            arrayMemberInfo = objType.FindMembers(MemberTypes.Method,
                BindingFlags.Public | BindingFlags.Static| BindingFlags.Instance,
                new MemberFilter(DelegateToSearchCriteria),
                "ReferenceEquals");

            for(int index=0;index < arrayMemberInfo.Length ;index++)
                Console.WriteLine ("Result of FindMembers -\t"+ arrayMemberInfo[index].ToString() +"\n");                 
        }
        catch (Exception e)
        {
            Console.WriteLine ("Exception : " + e.ToString() );            
        }           
    }
    public static bool DelegateToSearchCriteria(MemberInfo objMemberInfo, Object objSearch)
    {
        // Compare the name of the member function with the filter criteria.
        if(objMemberInfo.Name.ToString() == objSearch.ToString())
            return true;
        else 
            return false;
    }
}


.NET Framework

Com suporte em: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

.NET para aplicativos do Windows Phone

Com suporte em: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

Contribuições da comunidade

ADICIONAR
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2015 Microsoft