Exportar (0) Imprimir
Expandir todo
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Type.FindMembers (Método)

Devuelve una matriz filtrada de objetos MemberInfo del tipo del miembro especificado.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)

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

Parámetros

memberType
Tipo: System.Reflection.MemberTypes
Objeto que indica el tipo de miembro que se va a buscar.
bindingAttr
Tipo: System.Reflection.BindingFlags
Máscara de bits formada por una o varias enumeraciones BindingFlags que especifican la forma en que se realiza la búsqueda.
O bien
Cero, para devolver null.
filter
Tipo: System.Reflection.MemberFilter
Delegado que realiza las comparaciones y que devuelve true si el miembro inspeccionado coincide con filterCriteria o, en caso contrario, devuelve false. Es posible utilizar los delegados FilterAttribute, FilterName y FilterNameIgnoreCase que esta clase proporciona. El primero utiliza los campos de FieldAttributes, MethodAttributes y MethodImplAttributes como criterios de búsqueda, y los otros dos utilizan objetos String como criterios de búsqueda.
filterCriteria
Tipo: System.Object
Criterios de búsqueda que determinan si se devuelve un miembro en la matriz de objetos MemberInfo.
Los campos de FieldAttributes, MethodAttributes y MethodImplAttributes se pueden utilizar junto con el delegado FilterAttribute que esta clase proporciona.

Valor devuelto

Tipo: System.Reflection.MemberInfo[]
Matriz filtrada de objetos MemberInfo del tipo de miembro especificado.
O bien
Matriz vacía de tipo MemberInfo en caso de que el objeto Type actual no tenga miembros del tipo memberType que coincidan con los criterios del filtro.

Implementaciones

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

ExcepciónCondición
ArgumentNullException

filter es null.

Este método puede ser reemplazado por una clase derivada.

Los miembros incluyen propiedades, métodos, campos, eventos, etc.

Las siguientes marcas de filtro BindingFlags pueden utilizarse para definir los miembros que van a incluirse en la búsqueda:

  • Especifique BindingFlags.Instance o BindingFlags.Static para obtener un valor devuelto.

  • Especifique BindingFlags.Instance para incluir miembros de instancia en la búsqueda.

  • Especifique BindingFlags.Static para incluir miembros estáticos en la búsqueda.

  • Especifique BindingFlags.Public para incluir los miembros públicos en la búsqueda.

  • Especifique BindingFlags.NonPublic para incluir los miembros no públicos (es decir, miembros privados, internos y protegidos) en la búsqueda.

Las siguientes marcas de modificación BindingFlags pueden utilizarse para cambiar la forma en que se lleva a cabo la búsqueda:

  • BindingFlags.DeclaredOnly para buscar solo los miembros declarados en el objeto Type, no los miembros que simplemente se han heredado.

Para obtener más información, vea System.Reflection.BindingFlags.

Los valores válidos de MemberType se definen en MemberInfo. Si no se encuentran tales miembros, se devolverá una matriz vacía.

Para obtener el inicializador de clase (.cctor) utilizando este método, se debe especificar BindingFlags.Static | BindingFlags.NonPublic (BindingFlags.StaticOrBindingFlags.NonPublic en Visual Basic). Este inicializador de clase se puede obtener también mediante la propiedad TypeInitializer.

Si el objeto Type actual representa un parámetro de tipo de un tipo genérico o de un método genérico, el método FindMembers procesa los miembros declarados por la restricción de clase y por las restricciones de interfaz del parámetro de tipo.

En el siguiente ejemplo se buscan todos los miembros de una clase que satisfacen el criterio de búsqueda especificado y, a continuación, se muestran dichos miembros.


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

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

.NET para aplicaciones de Windows Phone

Compatible con: 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 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft