¿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

MemberInfo.DeclaringType (Propiedad)

Obtiene la clase que declara este miembro.

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

public abstract Type DeclaringType { get; }

Valor de propiedad

Tipo: System.Type
Objeto Type de la clase que declara este miembro.

Implementaciones

_MemberInfo.DeclaringType

La propiedad DeclaringType recupera una referencia al objeto Type del tipo que declara el miembro. Un miembro de un tipo se declara en el tipo o bien se hereda de un tipo base; por tanto, el objeto Type devuelto por la propiedad DeclaringType podría no ser el mismo que el objeto Type utilizado para obtener el objeto MemberInfo actual.

  • Si el objeto Type del cual se obtuvo este objeto MemberInfo no declara este miembro, la propiedad DeclaringType representará uno de sus tipos base.

  • Si el objeto MemberInfo es un miembro global (es decir, se obtuvo del método Module.GetMethods, que devuelve los métodos globales de un módulo), el valor devuelto de DeclaringType será null.

En el siguiente ejemplo se muestra cómo funciona DeclaringType con clases e interfaces y cómo recupera los nombres de los miembros de la clase System.IO.BufferedStream, junto con la clase en la que están declarados dichos miembros. Observe también que cuando B reemplaza el método virtual M de A, lo que hace básicamente es volver a definir (o declarar) este método. Por tanto, el valor de MethodInfo para B.M. presenta el tipo declarador como B en lugar de A, aun cuando sea en A donde se declaró originalmente el método.


using System;
using System.IO;
using System.Reflection;

namespace MyNamespace1 
{
    interface i 
    {
        int MyVar() ;
    };
    // DeclaringType for MyVar is i.

    class A : i 
    {
        public int MyVar() { return 0; }
    };
    // DeclaringType for MyVar is A.

    class B : A 
    {
        new int MyVar() { return 0; }
    };
    // DeclaringType for MyVar is B.

    class C : A 
    {
    };
    // DeclaringType for MyVar is A.

}

namespace MyNamespace2 
{
    class Mymemberinfo 
    { 

        public static void Main(string[] args) 
        { 

            Console.WriteLine ("\nReflection.MemberInfo");

            //Get the Type and MemberInfo. 
            Type MyType =Type.GetType("System.IO.BufferedStream");
            MemberInfo[] Mymemberinfoarray = MyType.GetMembers();

            //Get and display the DeclaringType method. 
            Console.WriteLine("\nThere are {0} members in {1}.", Mymemberinfoarray.Length, MyType.FullName); 

            foreach (MemberInfo Mymemberinfo in Mymemberinfoarray) 
            {  
                Console.WriteLine("Declaring type of {0} is {1}.", Mymemberinfo.Name, Mymemberinfo.DeclaringType); 
            }
        }
    }
}

namespace MyNamespace3 
{
    class A 
    {
        virtual public void M () {}
    }
    class B: A 
    {
        override public void M () {}
    }
}


NotaNota

DeclaringType sólo devuelve los nombres de los miembros y de los tipos que los declaran. Para devolver los nombres de los miembros y sus prototipos, debe llamarse a MemberInfo.ToString.

.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 la Tienda Windows

Compatible con: Windows 8

.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