GetMembers Método (BindingFlags)
Collapse the table of content
Expand the table of content
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.GetMembers (Método) (BindingFlags)

 

Cuando se invalida en una clase derivada, busca los miembros definidos para el objeto Type actual y aplica las restricciones de enlace especificadas.

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

public abstract MemberInfo[] GetMembers(
	BindingFlags bindingAttr
)

Parámetros

bindingAttr

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 (BindingFlags.Default), para que se devuelva una matriz vacía.

Valor devuelto

Type: System.Reflection.MemberInfo[]

Matriz de objetos MemberInfo que representa todos los miembros definidos para el objeto Type actual que coincidan con las restricciones de enlace especificadas.

o bien

Matriz vacía de tipo MemberInfo si no se han definido miembros para el objeto Type actual o si ninguno de los miembros definidos coincide con las restricciones de enlace.

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

El GetMembers 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 se van a 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.Sólo protegido y se devuelven los miembros internos de las clases base; los miembros privados de las clases base no se devuelven.

  • 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 indicadores modificadores pueden utilizarse para cambiar el funcionamiento de la búsqueda:

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

Llamar a este método solamente con el Public marca o sólo el NonPublic marca devolverá los miembros especificados y no se necesitarán otros indicadores.

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

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

Si t: System. Type actual representa un tipo genérico construido, este método devuelve el MemberInfo objetos 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.

En el ejemplo de código siguiente se muestra cómo utilizar el GetMembers(BindingFlags) sobrecarga del método para recopilar información acerca de todos los miembros de instancia públicos de una clase especificada.


class MyClass
{
   public int myInt = 0;
   public string myString = null;

   public MyClass()
   {
   }
   public void Myfunction()
   {
   }
}

class Type_GetMembers_BindingFlags
{
   public static void Main()
   {
      try
      {
         MyClass MyObject = new MyClass();
         MemberInfo [] myMemberInfo; 

         // Get the type of the class 'MyClass'.
         Type myType = MyObject.GetType(); 

         // Get the public instance members of the class 'MyClass'. 
         myMemberInfo = myType.GetMembers(BindingFlags.Public|BindingFlags.Instance);

         Console.WriteLine( "\nThe public instance members of class '{0}' are : \n", myType); 
         for (int i =0 ; i < myMemberInfo.Length ; i++)
         {
            // Display name and type of the member of 'MyClass'.
            Console.WriteLine( "'{0}' is a {1}", myMemberInfo[i].Name, myMemberInfo[i].MemberType);
         }

      }
      catch (SecurityException e)
      {
         Console.WriteLine("SecurityException : " + e.Message ); 
      }      

      //Output:
      //The public instance members of class 'MyClass' are :

      //'Myfunction' is a Method
      //'ToString' is a Method
      //'Equals' is a Method
      //'GetHashCode' is a Method
      //'GetType' is a Method
      //'.ctor' is a Constructor
      //'myInt' is a Field
      //'myString' is a Field

   }
}

.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:
© 2016 Microsoft