¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
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.GetConstructors (Método) (BindingFlags)

Cuando se invalida en una clase derivada, busca los constructores definidos para el objeto Type actual, con las enumeraciones BindingFlags especificadas.

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

[ComVisibleAttribute(true)]
public abstract ConstructorInfo[] GetConstructors(
	BindingFlags bindingAttr
)

Parámetros

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.

Valor devuelto

Tipo: System.Reflection.ConstructorInfo[]
Matriz de objetos ConstructorInfo que representa todos los constructores definidos para el objeto Type actual que coincidan con las restricciones de enlace especificadas, incluido el inicializador de tipo si está definido. Devuelve una matriz vacía de tipo ConstructorInfo si no se definen constructores para el objeto Type actual, si ninguno de los constructores definidos cumple las restricciones de enlace o si el objeto Type actual representa un parámetro de tipo en la definición de un tipo genérico o de un método genérico.

Implementaciones

_Type.GetConstructors(BindingFlags)

El método GetConstructors no devuelve constructores en un orden específico, como el orden de declaración. El código no debe depender del orden de devolución de los constructores, porque ese orden varía.

El parámetro bindingAttr se puede utilizar para especificar si se deben devolver solo los constructores públicos o tanto los constructores públicos como los que no lo son.

Si no existe una coincidencia exacta, el parámetro binder intentará forzar los tipos de parámetro que se especifican en la matriz types para seleccionar una coincidencia. Si binder no puede seleccionar una coincidencia, se devolverá null.

Las siguientes marcas de filtro BindingFlags pueden utilizarse para definir los constructores que deben incluirse en la búsqueda:

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

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

  • Especifique BindingFlags.NonPublic para incluir constructores no públicos (es decir, constructores privados, internos y protegidos) en la búsqueda. No se devuelven los constructores de clases base.

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

Para obtener el inicializador de clase (.cctor) usando 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 tipo genérico construido, este método devuelve los objetos ConstructorInfo con los parámetros de tipo sustituidos por los argumentos de tipo adecuados. Por ejemplo, si la clase C<T> tiene un constructor C(T t1) (Sub New(ByVal t1 As T) en Visual Basic), la llamada al método GetConstructors en C<int> devuelve un objeto ConstructorInfo que representa C(int t1) en C# (Sub New(ByVal t1 As Integer) en Visual Basic).

Si el objeto Type actual representa un parámetro de tipo genérico, el método GetConstructors devuelve una matriz vacía.

Este ejemplo muestra el resultado de la sobrecarga de GetConstructors() a partir de una clase que tiene dos constructores de instancias y un constructor estático.


using System;
using System.Reflection;

public class t {
    public t() {}
    static t() {}
    public t(int i) {}

    public static void Main() {
        ConstructorInfo[] p = typeof(t).GetConstructors();
        Console.WriteLine(p.Length);

        for (int i=0;i<p.Length;i++) {
            Console.WriteLine(p[i].IsStatic);
        }
    }
}


El resultado de este código es:

2

False

False

Debido a que la sobrecarga de GetConstructors utiliza sólo Public e Instance, el constructor estático no se recuenta mediante la expresión for ni se evalúa mediante IsStatic.

Para buscar constructores estáticos, se utiliza la sobrecarga de GetConstructors y se pasa la combinación (disyunción lógica) de BindingFlags.Public, BindingFlags.Static, BindingFlags.NonPublic, BindingFlags.Instance, como se muestra en el ejemplo de código siguiente:


using System;
using System.Reflection;

public class t {
    public t() {}
    static t() {}
    public t(int i) {}

    public static void Main() {
        ConstructorInfo[] p = typeof(t).GetConstructors(
           BindingFlags.Public | BindingFlags.Static |
           BindingFlags.NonPublic | BindingFlags.Instance);
        Console.WriteLine(p.Length);

        for (int i=0;i<p.Length;i++) {
            Console.WriteLine(p[i].IsStatic);
        }
    }
}


Ahora, el resultado es:

3

False

True

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

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.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