Assembly.GetType Método

Definición

Obtiene el objeto Type que representa el tipo especificado.Gets the Type object that represents the specified type.

Sobrecargas

GetType(String, Boolean, Boolean)

Obtiene el objeto Type con el nombre especificado en la instancia de ensamblado, con la opción de omitir el caso y de producir una excepción si no se encuentra el tipo.Gets the Type object with the specified name in the assembly instance, with the options of ignoring the case, and of throwing an exception if the type is not found.

GetType(String, Boolean)

Obtiene el objeto Type con el nombre especificado en la instancia de ensamblado y, de manera opcional, produce una excepción si no se encuentra el tipo.Gets the Type object with the specified name in the assembly instance and optionally throws an exception if the type is not found.

GetType(String)

Obtiene el objeto Type con el nombre especificado en la instancia de ensamblado.Gets the Type object with the specified name in the assembly instance.

GetType()

GetType(String, Boolean, Boolean)

Obtiene el objeto Type con el nombre especificado en la instancia de ensamblado, con la opción de omitir el caso y de producir una excepción si no se encuentra el tipo.Gets the Type object with the specified name in the assembly instance, with the options of ignoring the case, and of throwing an exception if the type is not found.

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

Parámetros

name
String

Nombre completo del tipo.The full name of the type.

throwOnError
Boolean

true para producir una excepción si no se encuentra el tipo; false para devolver null.true to throw an exception if the type is not found; false to return null.

ignoreCase
Boolean

Es true para no hacer distinción entre mayúsculas y minúsculas en el nombre del tipo; en caso contrario, es false.true to ignore the case of the type name; otherwise, false.

Devoluciones

Objeto que representa a la clase especificada.An object that represents the specified class.

Implementaciones

Excepciones

name no es válido.name is invalid.

O bien-or- La longitud de name supera los 1024 caracteres.The length of name exceeds 1024 characters.

name es null.name is null.

throwOnError es truey no se puede encontrar el tipo.throwOnError is true, and the type cannot be found.

name requiere un ensamblado dependiente que no se pudo encontrar.name requires a dependent assembly that could not be found.

name requiere un ensamblado dependiente que se encontró, pero no se pudo cargar.name requires a dependent assembly that was found but could not be loaded.

O bien-or- El ensamblado actual se cargó en el contexto de solo reflexión y name requiere un ensamblado dependiente que no se haya cargado previamente.The current assembly was loaded into the reflection-only context, and name requires a dependent assembly that was not preloaded.

name requiere un ensamblado dependiente, pero el archivo no es un ensamblado válido.name requires a dependent assembly, but the file is not a valid assembly.

o bien-or- name requiere un ensamblado dependiente compilado para una versión del tiempo de ejecución posterior a la versión cargada actualmente.name requires a dependent assembly which was compiled for a version of the runtime later than the currently loaded version.

Comentarios

Este método solo busca en la instancia de ensamblado actual.This method only searches the current assembly instance. El parámetro name incluye el espacio de nombres pero no el ensamblado.The name parameter includes the namespace but not the assembly. Para buscar en otros ensamblados un tipo, use la sobrecarga del método Type.GetType(String), que opcionalmente puede incluir un nombre para mostrar del ensamblado como parte del nombre de tipo.To search other assemblies for a type, use the Type.GetType(String) method overload, which can optionally include an assembly display name as part of the type name.

Nota

Si el tipo se ha reenviado a otro ensamblado, este método lo devuelve.If the type has been forwarded to another assembly, it is still returned by this method. Para obtener información sobre el reenvío de tipos, vea reenvío de tipos en Common Language Runtime.For information on type forwarding, see Type Forwarding in the Common Language Runtime.

El parámetro throwOnError solo afecta a lo que ocurre cuando no se encuentra el tipo.The throwOnError parameter only affects what happens when the type is not found. No afecta a ninguna otra excepción que se pueda producir.It does not affect any other exceptions that might be thrown. En concreto, si se encuentra el tipo pero no se puede cargar, se puede iniciar TypeLoadException incluso si throwOnError es false.In particular, if the type is found but cannot be loaded, TypeLoadException can be thrown even if throwOnError is false.

GetType(String, Boolean)

Obtiene el objeto Type con el nombre especificado en la instancia de ensamblado y, de manera opcional, produce una excepción si no se encuentra el tipo.Gets the Type object with the specified name in the assembly instance and optionally throws an exception if the type is not found.

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.The full name of the type.

throwOnError
Boolean

true para producir una excepción si no se encuentra el tipo; false para devolver null.true to throw an exception if the type is not found; false to return null.

Devoluciones

Objeto que representa a la clase especificada.An object that represents the specified class.

Implementaciones

Excepciones

name no es válido.name is invalid.

O bien-or- La longitud de name supera los 1024 caracteres.The length of name exceeds 1024 characters.

El valor de name es null.name is null.

throwOnError es truey no se puede encontrar el tipo.throwOnError is true, and the type cannot be found.

name requiere un ensamblado dependiente que no se pudo encontrar.name requires a dependent assembly that could not be found.

name requiere un ensamblado dependiente que se encontró, pero no se pudo cargar.name requires a dependent assembly that was found but could not be loaded.

O bien-or- El ensamblado actual se cargó en el contexto de solo reflexión y name requiere un ensamblado dependiente que no se haya cargado previamente.The current assembly was loaded into the reflection-only context, and name requires a dependent assembly that was not preloaded.

name requiere un ensamblado dependiente, pero el archivo no es un ensamblado válido.name requires a dependent assembly, but the file is not a valid assembly.

O bien-or- name requiere un ensamblado dependiente compilado para una versión del tiempo de ejecución posterior a la versión cargada actualmente.name requires a dependent assembly which was compiled for a version of the runtime later than the currently loaded version.

Comentarios

Este método solo busca en la instancia de ensamblado actual.This method only searches the current assembly instance. El parámetro name incluye el espacio de nombres pero no el ensamblado.The name parameter includes the namespace but not the assembly. Para buscar en otros ensamblados un tipo, use la sobrecarga del método Type.GetType(String), que opcionalmente puede incluir un nombre para mostrar del ensamblado como parte del nombre de tipo.To search other assemblies for a type, use the Type.GetType(String) method overload, which can optionally include an assembly display name as part of the type name.

Nota

Si el tipo se ha reenviado a otro ensamblado, este método lo devuelve.If the type has been forwarded to another assembly, it is still returned by this method. Para obtener información sobre el reenvío de tipos, vea reenvío de tipos en Common Language Runtime.For information on type forwarding, see Type Forwarding in the Common Language Runtime.

El parámetro throwOnError solo afecta a lo que ocurre cuando no se encuentra el tipo.The throwOnError parameter only affects what happens when the type is not found. No afecta a ninguna otra excepción que se pueda producir.It does not affect any other exceptions that might be thrown. En concreto, si se encuentra el tipo pero no se puede cargar, se puede iniciar TypeLoadException incluso si throwOnError es false.In particular, if the type is found but cannot be loaded, TypeLoadException can be thrown even if throwOnError is false.

GetType(String)

Obtiene el objeto Type con el nombre especificado en la instancia de ensamblado.Gets the Type object with the specified name in the assembly instance.

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.The full name of the type.

Devoluciones

Objeto que representa la clase especificada, o null si no se encuentra la clase.An object that represents the specified class, or null if the class is not found.

Implementaciones

Excepciones

name no es válido.name is invalid.

El valor de name es null.name is null.

name requiere un ensamblado dependiente que no se pudo encontrar.name requires a dependent assembly that could not be found.

En .NET para aplicaciones de la Tienda Windows o la Biblioteca de clases portable, capture en su lugar la excepción de clase base, IOException.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, IOException, instead.

name requiere un ensamblado dependiente que se encontró, pero no se pudo cargar. name requires a dependent assembly that was found but could not be loaded. o bien-or- El ensamblado actual se cargó en el contexto de solo reflexión y name requiere un ensamblado dependiente que no se haya cargado previamente.The current assembly was loaded into the reflection-only context, and name requires a dependent assembly that was not preloaded.

name requiere un ensamblado dependiente, pero el archivo no es un ensamblado válido.name requires a dependent assembly, but the file is not a valid assembly.

O bien-or- name requiere un ensamblado dependiente compilado para una versión del tiempo de ejecución posterior a la versión cargada actualmente.name requires a dependent assembly which was compiled for a version of the runtime later than the currently loaded version.

Ejemplos

En el ejemplo siguiente se define una clase MeansOfTransportation abstracta en el espacio de nombres Transportation.The following example defines an abstract MeansOfTransportation class in the Transportation namespace. Llama al método GetType(String) para recuperar su Type objeto, llama al método Type.GetProperties 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.It calls the GetType(String) method to retrieve its Type object, calls the Type.GetProperties method to get an array of PropertyInfo objects that represent the type's properties, and then displays information on the type's abstract properties. Tenga en cuenta que la llamada al método GetType(String) utiliza el nombre completo del tipo (es decir, su espacio de nombres junto con su nombre de tipo).Note that the call to the GetType(String) method uses the type's fully qualified name (that is, its namespace along with its type name).

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.This method only searches the current assembly instance. El parámetro name incluye el espacio de nombres pero no el ensamblado.The name parameter includes the namespace but not the assembly. Para buscar en otros ensamblados un tipo, use la sobrecarga del método Type.GetType(String), que opcionalmente puede incluir un nombre para mostrar del ensamblado como parte del nombre de tipo.To search other assemblies for a type, use the Type.GetType(String) method overload, which can optionally include an assembly display name as part of the type name.

Nota

Si el tipo se ha reenviado a otro ensamblado, este método lo devuelve.If the type has been forwarded to another assembly, it is still returned by this method. Para obtener información sobre el reenvío de tipos, vea reenvío de tipos en Common Language Runtime.For information on type forwarding, see Type Forwarding in the Common Language Runtime.

GetType()

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

Devoluciones

Implementaciones

Se aplica a