Assembly.GetType Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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 é 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 é 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)
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.