Assembly.GetType Método

Definición

Obtiene el Type objeto que representa el tipo especificado.

Sobrecargas

Nombre Description
GetType(String, Boolean, Boolean)

Obtiene el Type objeto con el nombre especificado en la instancia de ensamblado, con las opciones de omitir el caso y de producir una excepción si no se encuentra el tipo.

GetType(String, Boolean)

Obtiene el Type objeto con el nombre especificado en la instancia de ensamblado y, opcionalmente, produce una excepción si no se encuentra el tipo.

GetType()
GetType(String)

Obtiene el Type objeto con el nombre especificado en la instancia de ensamblado.

GetType(String, Boolean, Boolean)

Obtiene el Type objeto con el nombre especificado en la instancia de ensamblado, con las opciones de omitir el caso y de producir una excepción si no se encuentra el tipo.

public:
 virtual Type ^ GetType(System::String ^ name, bool throwOnError, bool ignoreCase);
public virtual Type GetType(string name, bool throwOnError, bool ignoreCase);
public Type GetType(string name, bool throwOnError, bool ignoreCase);
override this.GetType : string * bool * bool -> Type
Public Overridable Function GetType (name As String, throwOnError As Boolean, ignoreCase As Boolean) As Type
Public Function GetType (name As String, throwOnError As Boolean, ignoreCase As Boolean) As Type

Parámetros

name
String

Nombre completo del tipo.

throwOnError
Boolean

true para producir una excepción si no se encuentra el tipo; false para devolver null.

ignoreCase
Boolean

true para pasar por alto el caso del nombre de tipo; de lo contrario, false.

Devoluciones

Objeto que representa la clase especificada.

Implementaciones

Excepciones

name no es válido.

– O bien –

La longitud de name supera los 1024 caracteres.

name es null.

throwOnError es truey no se encuentra el tipo.

name requiere un ensamblado dependiente que no se pudo encontrar.

name requiere un ensamblado dependiente que se encontró pero no se pudo cargar.

– O bien –

El ensamblado actual se cargó en el contexto de solo reflexión y name requiere un ensamblado dependiente que no se haya cargado previamente.

name requiere un ensamblado dependiente, pero el archivo no es un ensamblado válido para el tiempo de ejecución cargado actualmente.

Comentarios

Este método solo busca en la instancia de ensamblado actual. El name parámetro incluye el espacio de nombres, pero no el ensamblado. Para buscar otros ensamblados para un tipo, use la sobrecarga del Type.GetType(String) método, que puede incluir opcionalmente un nombre para mostrar de ensamblado como parte del nombre de tipo.

En .NET Core/.NET 5+, si hay parámetros de tipo genérico calificado con ensamblado en la cadena de nombre de tipo, esas referencias de ensamblado se cargarán mediante el AssemblyLoadContext del método que llamó a Assembly.GetType o por el contexto AssemblyLoadContext.CurrentContextualReflectionContext si se establece.

Note

Si el tipo se ha reenviado a otro ensamblado, este método todavía lo devuelve. Para obtener información sobre el reenvío de tipos, consulte Reenvío de tipos en Common Language Runtime.

El throwOnError parámetro solo afecta a lo que sucede cuando no se encuentra el tipo. No afecta a ninguna otra excepción que se pueda producir. En concreto, si se encuentra el tipo pero no se puede cargar, TypeLoadException se puede producir incluso si throwOnError es false.

Se aplica a

GetType(String, Boolean)

Obtiene el Type objeto con el nombre especificado en la instancia de ensamblado y, opcionalmente, produce una excepción si no se encuentra el tipo.

public:
 virtual Type ^ GetType(System::String ^ name, bool throwOnError);
public virtual Type GetType(string name, bool throwOnError);
override this.GetType : string * bool -> Type
Public Overridable Function GetType (name As String, throwOnError As Boolean) As Type

Parámetros

name
String

Nombre completo del tipo.

throwOnError
Boolean

true para producir una excepción si no se encuentra el tipo; false para devolver null.

Devoluciones

Objeto que representa la clase especificada.

Implementaciones

Excepciones

name no es válido.

– O bien –

La longitud de name supera los 1024 caracteres.

name es null.

throwOnError es truey no se encuentra el tipo.

name requiere un ensamblado dependiente que no se pudo encontrar.

name requiere un ensamblado dependiente que se encontró pero no se pudo cargar.

– O bien –

El ensamblado actual se cargó en el contexto de solo reflexión y name requiere un ensamblado dependiente que no se haya cargado previamente.

name requiere un ensamblado dependiente, pero el archivo no es un ensamblado válido para el tiempo de ejecución cargado actualmente.

Comentarios

Este método solo busca en la instancia de ensamblado actual. El name parámetro incluye el espacio de nombres, pero no el ensamblado. Para buscar otros ensamblados para un tipo, use la sobrecarga del Type.GetType(String) método, que puede incluir opcionalmente un nombre para mostrar de ensamblado como parte del nombre de tipo.

En .NET Core/.NET 5+, si hay parámetros de tipo genérico calificado con ensamblado en la cadena de nombre de tipo, esas referencias de ensamblado se cargarán mediante el AssemblyLoadContext del método que llamó a Assembly.GetType o por el contexto AssemblyLoadContext.CurrentContextualReflectionContext si se establece.

Note

Si el tipo se ha reenviado a otro ensamblado, este método todavía lo devuelve. Para obtener información sobre el reenvío de tipos, consulte Reenvío de tipos en Common Language Runtime.

El throwOnError parámetro solo afecta a lo que sucede cuando no se encuentra el tipo. No afecta a ninguna otra excepción que se pueda producir. En concreto, si se encuentra el tipo pero no se puede cargar, TypeLoadException se puede producir incluso si throwOnError es false.

Se aplica a

GetType()

public:
 virtual Type ^ GetType();
public Type GetType();
override this.GetType : unit -> Type
Public Function GetType () As Type

Devoluciones

Implementaciones

Se aplica a

GetType(String)

Obtiene el Type objeto con el nombre especificado en la instancia de ensamblado.

public:
 virtual Type ^ GetType(System::String ^ name);
public virtual Type GetType(string name);
override this.GetType : string -> Type
Public Overridable Function GetType (name As String) As Type

Parámetros

name
String

Nombre completo del tipo.

Devoluciones

Objeto que representa la clase especificada o null si no se encuentra la clase .

Implementaciones

Excepciones

name no es válido.

name es null.

name requiere un ensamblado dependiente que no se pudo encontrar.

name requiere un ensamblado dependiente que se encontró pero no se pudo cargar.

– O bien –

El ensamblado actual se cargó en el contexto de solo reflexión y name requiere un ensamblado dependiente que no se haya cargado previamente.

name requiere un ensamblado dependiente, pero el archivo no es un ensamblado válido para el tiempo de ejecución cargado actualmente.

Ejemplos

En el ejemplo siguiente se define una clase abstracta MeansOfTransportation en el Transportation espacio de nombres . Llama al GetType(String) método para recuperar su Type objeto, llama al Type.GetProperties método para obtener una matriz de PropertyInfo objetos que representan las propiedades del tipo y, a continuación, muestra información sobre las propiedades abstractas del tipo. Tenga en cuenta que la llamada al GetType(String) método usa el nombre completo del tipo (es decir, su espacio de nombres junto con su nombre de tipo).

using System;
using System.Reflection;

public class Example
{
    public static void Main()
    {
        Assembly assem = typeof(Example).Assembly;
        Type t = assem.GetType("Transportation.MeansOfTransportation");
        if (t != null)
        {
            Console.WriteLine($"Virtual properties in type {t.FullName}:");
            PropertyInfo[] props = t.GetProperties();
            int nVirtual = 0;
            for (int ctr = 0; ctr < props.Length; ctr++)
            {
                if (props[ctr].GetMethod.IsVirtual)
                {
                    Console.WriteLine($"   {props[ctr].Name} (type {props[ctr].PropertyType.FullName})");
                    nVirtual++;
                }
            }

            if (nVirtual == 0)
                Console.WriteLine("   No virtual properties");
        }
    }
}

namespace Transportation
{
    public abstract class MeansOfTransportation
    {
        abstract public bool HasWheels { get; set; }
        abstract public int Wheels { get; set; }
        abstract public bool ConsumesFuel { get; set; }
        abstract public bool Living { get; set; }
    }
}
// The example displays the following output:
//    Virtual properties in type Transportation.MeansOfTransportation:
//       HasWheels (type System.Boolean)
//       Wheels (type System.Int32)
//       ConsumesFuel (type System.Boolean)
//       Living (type System.Boolean)
Imports System.Reflection

Module Example
   Public Sub Main()
      Dim assem As Assembly = GetType(Example).Assembly
      Dim t As Type = assem.GetType("Transportation.MeansOfTransportation")
      If Not t Is Nothing Then
         Console.WriteLine("Virtual properties in type {0}:", 
                           t.FullName)
         Dim props() As PropertyInfo = t.GetProperties()
         Dim nVirtual As Integer = 0
         For ctr As Integer = 0 To props.Length - 1
            If props(ctr).GetMethod.IsVirtual Then
               Console.WriteLine("   {0} (type {1})",
                                 props(ctr).Name, 
                                 props(ctr).PropertyType.FullName)
               nVirtual += 1
            End If
         Next
         If nVirtual = 0 Then 
            Console.WriteLine("   No virtual properties")
         End If   
      End If   
   End Sub
End Module

Namespace Transportation
   Public MustInherit Class MeansOfTransportation
      Public MustOverride Property HasWheels As Boolean
      Public MustOverride Property Wheels As Integer
      Public MustOverride Property ConsumesFuel As Boolean
      Public MustOverride Property Living As Boolean
   End Class
End Namespace
' The example displays the following output:
'    Virtual properties in type Transportation.MeansOfTransportation:
'       HasWheels (type System.Boolean)
'       Wheels (type System.Int32)
'       ConsumesFuel (type System.Boolean)
'       Living (type System.Boolean)

Comentarios

Este método solo busca en la instancia de ensamblado actual. El name parámetro incluye el espacio de nombres, pero no el ensamblado. Para buscar otros ensamblados para un tipo, use la sobrecarga del Type.GetType(String) método, que puede incluir opcionalmente un nombre para mostrar de ensamblado como parte del nombre de tipo.

En .NET Core/.NET 5+, si hay parámetros de tipo genérico calificado con ensamblado en la cadena de nombre de tipo, esas referencias de ensamblado se cargarán mediante el AssemblyLoadContext del método que llamó a Assembly.GetType o por el contexto AssemblyLoadContext.CurrentContextualReflectionContext si se establece.

Note

Si el tipo se ha reenviado a otro ensamblado, este método todavía lo devuelve. Para obtener información sobre el reenvío de tipos, consulte Reenvío de tipos en Common Language Runtime.

Se aplica a