Assembly.GetType Método

Definição

Obtém o Type objeto que representa o tipo especificado.

Sobrecargas

Name Description
GetType(String, Boolean, Boolean)

Obtém o Type objeto com o nome especificado na instância de assembly, com as opções de ignorar o caso e lançar uma exceção se o tipo não for encontrado.

GetType(String, Boolean)

Recebe o Type objeto com o nome especificado na instância de montagem e, opcionalmente, lança uma exceção se o tipo não for encontrado.

GetType()
GetType(String)

Obtém o Type objeto com o nome especificado na instância assembly.

GetType(String, Boolean, Boolean)

Obtém o Type objeto com o nome especificado na instância de assembly, com as opções de ignorar o caso e lançar uma exceção se o tipo não for encontrado.

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

O nome completo do tipo.

throwOnError
Boolean

true lançar uma exceção se o tipo não for encontrado; false para regressar null.

ignoreCase
Boolean

true ignorar o caso do nome do tipo; caso contrário, false.

Devoluções

Um objeto que representa a classe especificada.

Implementações

Exceções

name é inválido.

-ou-

O comprimento de name ultrapassa os 1024 caracteres.

name é null.

throwOnError é true, e o tipo não pode ser encontrado.

name requer um assembly dependente que não foi encontrado.

name requer um conjunto dependente que foi encontrado mas não pôde ser carregado.

-ou-

O conjunto de corrente foi carregado no contexto apenas de reflexão e name requer um conjunto dependente que não foi pré-carregado.

name requer uma montagem dependente, mas o ficheiro não é uma assembly válida para o runtime atualmente carregado.

Observações

Este método pesquisa apenas a instância de montagem atual. O name parâmetro inclui o namespace, mas não a assembleia. Para pesquisar noutras assemblagens um tipo, use o Type.GetType(String) método overload, que pode opcionalmente incluir um nome de apresentação de montagem como parte do nome do tipo.

Em .NET Core/.NET 5+, se existirem parâmetros genéricos de tipo qualificados para montagem na cadeia de nomes do tipo, essas referências de montagem serão carregadas pelo AssemblyLoadContext do método que chamou Assembly.GetType, ou pelo contexto AssemblyLoadContext.CurrentContextualReflectionContext se estiver definido.

Note

Se o tipo tiver sido encaminhado para outra assembleia, ainda assim é devolvido por este método. Para informações sobre encaminhamento de tipos, veja Encaminhamento de Tipos no Common Language Runtime.

O throwOnError parâmetro só afeta o que acontece quando o tipo não é encontrado. Não afeta quaisquer outras exceções que possam ser incluídas. Em particular, se o tipo for encontrado mas não puder ser carregado, TypeLoadException pode ser lançado mesmo que throwOnError seja false.

Aplica-se a

GetType(String, Boolean)

Recebe o Type objeto com o nome especificado na instância de montagem e, opcionalmente, lança uma exceção se o tipo não for encontrado.

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

O nome completo do tipo.

throwOnError
Boolean

true lançar uma exceção se o tipo não for encontrado; false para regressar null.

Devoluções

Um objeto que representa a classe especificada.

Implementações

Exceções

name é inválido.

-ou-

O comprimento de name ultrapassa os 1024 caracteres.

name é null.

throwOnError é true, e o tipo não pode ser encontrado.

name requer um assembly dependente que não foi encontrado.

name requer um conjunto dependente que foi encontrado mas não pôde ser carregado.

-ou-

O conjunto de corrente foi carregado no contexto apenas de reflexão e name requer um conjunto dependente que não foi pré-carregado.

name requer uma montagem dependente, mas o ficheiro não é uma assembly válida para o runtime atualmente carregado.

Observações

Este método pesquisa apenas a instância de montagem atual. O name parâmetro inclui o namespace, mas não a assembleia. Para pesquisar noutras assemblagens um tipo, use o Type.GetType(String) método overload, que pode opcionalmente incluir um nome de apresentação de montagem como parte do nome do tipo.

Em .NET Core/.NET 5+, se existirem parâmetros genéricos de tipo qualificados para montagem na cadeia de nomes do tipo, essas referências de montagem serão carregadas pelo AssemblyLoadContext do método que chamou Assembly.GetType, ou pelo contexto AssemblyLoadContext.CurrentContextualReflectionContext se estiver definido.

Note

Se o tipo tiver sido encaminhado para outra assembleia, ainda assim é devolvido por este método. Para informações sobre encaminhamento de tipos, veja Encaminhamento de Tipos no Common Language Runtime.

O throwOnError parâmetro só afeta o que acontece quando o tipo não é encontrado. Não afeta quaisquer outras exceções que possam ser incluídas. Em particular, se o tipo for encontrado mas não puder ser carregado, TypeLoadException pode ser lançado mesmo que throwOnError seja false.

Aplica-se a

GetType()

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

Devoluções

Implementações

Aplica-se a

GetType(String)

Obtém o Type objeto com o nome especificado na instância assembly.

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

O nome completo do tipo.

Devoluções

Um objeto que representa a classe especificada, ou null se a classe não for encontrada.

Implementações

Exceções

name é inválido.

name é null.

name requer um assembly dependente que não foi encontrado.

name requer um conjunto dependente que foi encontrado mas não pôde ser carregado.

-ou-

O conjunto de corrente foi carregado no contexto apenas de reflexão e name requer um conjunto dependente que não foi pré-carregado.

name requer uma montagem dependente, mas o ficheiro não é uma assembly válida para o runtime atualmente carregado.

Exemplos

O exemplo seguinte define uma classe abstrata MeansOfTransportation no Transportation espaço de nomes. Chama o GetType(String) método para recuperar o seu Type objeto, chama o Type.GetProperties método para obter um array de PropertyInfo objetos que representam as propriedades do tipo, e depois apresenta informação sobre as propriedades abstratas do tipo. Note-se que a chamada ao GetType(String) método utiliza o nome totalmente qualificado do tipo (ou seja, o seu espaço de nomes juntamente com o nome do 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)

Observações

Este método pesquisa apenas a instância de montagem atual. O name parâmetro inclui o namespace, mas não a assembleia. Para pesquisar noutras assemblagens um tipo, use o Type.GetType(String) método overload, que pode opcionalmente incluir um nome de apresentação de montagem como parte do nome do tipo.

Em .NET Core/.NET 5+, se existirem parâmetros genéricos de tipo qualificados para montagem na cadeia de nomes do tipo, essas referências de montagem serão carregadas pelo AssemblyLoadContext do método que chamou Assembly.GetType, ou pelo contexto AssemblyLoadContext.CurrentContextualReflectionContext se estiver definido.

Note

Se o tipo tiver sido encaminhado para outra assembleia, ainda assim é devolvido por este método. Para informações sobre encaminhamento de tipos, veja Encaminhamento de Tipos no Common Language Runtime.

Aplica-se a