Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Type.GetMember (String, BindingFlags)

 

Publicado: octubre de 2016

Busca los miembros especificados mediante las restricciones de enlace especificadas.

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

public virtual MemberInfo[] GetMember(
	string name,
	BindingFlags bindingAttr
)

Parámetros

name
Type: System.String

Cadena que contiene el nombre de los miembros que se van a obtener.

bindingAttr
Type: 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 que se devuelva una matriz vacía.

Valor devuelto

Type: System.Reflection.MemberInfo[]

Matriz de objetos MemberInfo que representa los miembros públicos con el nombre especificado, si se encuentran; de lo contrario, una matriz vacía.

Exception Condition
ArgumentNullException

El valor de name es null.

Este método puede invalidarse mediante una clase derivada.

Los miembros incluyen propiedades, métodos, campos, eventos y así sucesivamente.

El GetMember método no devuelve los miembros en un orden específico, como alfabético o el orden de declaración. El código no debe depender del orden en que se devuelven los miembros, porque ese orden varía.

La siguiente BindingFlags marcas de filtro pueden utilizarse para definir los miembros que desea incluir en la búsqueda:

  • Debe especificar BindingFlags.Instance o BindingFlags.Static para obtener una devolución.

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

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

  • Especificar BindingFlags.FlattenHierarchy para incluir public y protected miembros estáticos en la jerarquía; private no se incluyen los miembros estáticos de las clases heredadas.

La siguiente BindingFlags marcadores modificadores pueden utilizarse para cambiar el funcionamiento de la búsqueda:

  • BindingFlags.IgnoreCase para omitir el caso de name.

  • BindingFlags.DeclaredOnly para buscar sólo los miembros declarados en el Type, no los miembros que simplemente se han heredado.

Vea System.Reflection.BindingFlags para obtener más información.

Para obtener el inicializador de clase (.cctor) utilizando esta sobrecarga del método, debe especificar ".cctor" para name, y BindingFlags.Static | BindingFlags.NonPublic (BindingFlags.StaticOrBindingFlags.NonPublic en Visual Basic) para bindingAttr. También puede obtener el inicializador de clase utilizando la TypeInitializer propiedad.

Si la corriente Type representa un tipo genérico construido, este método devuelve el MemberInfo con los parámetros de tipo sustituidos por los argumentos del tipo adecuado.

Si la corriente Type representa un parámetro de tipo en la definición de un tipo genérico o un método genérico, este método busca los miembros de la restricción de clase o los miembros de Object Si no hay ninguna restricción de clase.

System_CAPS_noteNota

Para métodos genéricos, no incluya los argumentos de tipo en name. Por ejemplo, el código de C# GetMember("MyMethod<int>") busca un miembro con el nombre de texto "MyMethod<int>", en lugar de un método denominado MyMethod que tiene un argumento genérico de tipo int.

El ejemplo siguiente muestra todos los miembros estáticos públicos de la myString clase que comienzan con la letra C.

public void GetPublicStaticMemberInfo()
{
    String myString = "GetMember_String_BindingFlag";
    Type myType = myString.GetType();
    // Get the public static members for the class myString starting with the letter C.
    MemberInfo[] myMembers = myType.GetMember("C*",
        BindingFlags.Public |BindingFlags.Static);
    if(myMembers.Length > 0)
    {
        Console.WriteLine("\nThe public static member(s) starting with the letter C for type {0}:", myType);
        for(int index=0; index < myMembers.Length; index++)
            Console.WriteLine("Member {0}: {1}", index + 1, myMembers[index].ToString());
    }
    else
        Console.WriteLine("No members match the search criteria.");    
}

.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: