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

Type.GetMember (Método) (String)

 

Busca los miembros públicos con el nombre especificado.

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

public MemberInfo[] GetMember(
	string name
)

Parámetros

name

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

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.

Implementaciones

_Type.GetMember(String)

Exception Condition
ArgumentNullException

El valor de name es null.

La búsqueda de name distingue mayúsculas de minúsculas.La búsqueda incluye a miembros de instancia públicos y estáticos públicos.

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.

Esta sobrecarga del método no encontrará a inicializadores de clase (.cctor).Para buscar inicializadores de clase, utilice una sobrecarga que toma BindingFlags, y especificar BindingFlags.Static | BindingFlags.NonPublic (BindingFlags.StaticOrBindingFlags.NonPublic en Visual Basic).También puede obtener el inicializador de clase utilizando la TypeInitializer propiedad.

La siguiente tabla muestra qué miembros de una clase base que son devueltos por el Get métodos cuando se reflejan en un tipo.

Tipo de miembro

Estático

No estático

Constructor

No

No

Campo

No

Sí.Un campo siempre es ocultar por nombre y firma.

Evento

No es aplicable

La regla de sistema de tipos común es que la herencia es igual que el de los métodos que implementan la propiedad.Reflexión trata las propiedades como ocultar por nombre y firma.Véase la nota 2.

Método

No

Sí.Un método (virtual y no virtuales) se pueden ocultar por nombre u ocultar por nombre y firma.

Tipo anidado

No

No

Propiedad

No es aplicable

La regla de sistema de tipos común es que la herencia es igual que el de los métodos que implementan la propiedad.Reflexión trata las propiedades como ocultar por nombre y firma.Véase la nota 2.

  1. Ocultar por nombre y firma considera que todas las partes de la firma, incluidos los modificadores personalizados, devolución tipos, tipos de parámetro, centinelas y las convenciones de llamada no administradas.Se trata de una comparación binaria.

  2. Para la reflexión, propiedades y eventos son ocultar por nombre y firma.Si tiene una propiedad con un método get y un descriptor de acceso set de la clase base, pero la clase derivada tiene sólo un descriptor de acceso get, la propiedad de la clase derivada oculta la propiedad de clase base y no podrá tener acceso a la propiedad setter de la clase base.

  3. Atributos personalizados no forman parte del sistema de tipos comunes.

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 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 para un método denominado MyMethod que tiene un argumento genérico de tipo int.

El ejemplo siguiente muestra todos los miembros de la String clase que comienzan con la letra C.


using System;
using System.Security;
using System.Reflection;

public class MyMemberSample 
{
    public static void Main()
    {
        MyMemberSample myClass = new MyMemberSample();
        try
        {
            myClass.GetMemberInfo();
            myClass.GetPublicStaticMemberInfo();	
            myClass.GetPublicInstanceMethodMemberInfo();	
        }      
        catch(ArgumentNullException e)
        {
            Console.WriteLine("ArgumentNullException occurred.");
            Console.WriteLine("Source: " + e.Source);
            Console.WriteLine("Message: " + e.Message);
        }
        catch(NotSupportedException e)
        {
            Console.WriteLine("NotSupportedException occurred.");
            Console.WriteLine("Source: " + e.Source);
            Console.WriteLine("Message: " + e.Message);
        }
        catch(SecurityException e)
        {
            Console.WriteLine("SecurityException occurred.");
            Console.WriteLine("Source: " + e.Source);
            Console.WriteLine("Message: " + e.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("Exception occurred.");
            Console.WriteLine("Source: " + e.Source);
            Console.WriteLine("Message: " + e.Message);
        }
    }

    public void GetMemberInfo()
    {
        String myString = "GetMember_String";

        Type myType = myString.GetType();
        // Get the members for myString starting with the letter C.
        MemberInfo[] myMembers = myType.GetMember("C*");
        if(myMembers.Length > 0)
        {
            Console.WriteLine("\nThe 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
Portable Class Library
Compatible con: portable .NET platforms
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: