Assembly.GetType Metoda

Definicja

Pobiera Type obiekt, który reprezentuje określony typ.Gets the Type object that represents the specified type.

Przeciążenia

GetType(String, Boolean, Boolean)

Pobiera Type obiekt o określonej nazwie w wystąpieniu zestawu, z opcjami ignorowania wielkości liter i zgłasza wyjątek, jeśli nie znaleziono typu.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)

Pobiera Type obiekt o określonej nazwie w wystąpieniu zestawu i opcjonalnie zgłasza wyjątek, jeśli nie można odnaleźć typu.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)

Pobiera Type obiekt o określonej nazwie w wystąpieniu zestawu.Gets the Type object with the specified name in the assembly instance.

GetType()

GetType(String, Boolean, Boolean)

Pobiera Type obiekt o określonej nazwie w wystąpieniu zestawu, z opcjami ignorowania wielkości liter i zgłasza wyjątek, jeśli nie znaleziono typu.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 virtual Type GetType (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

Parametry

name
String

Pełna nazwa typu.The full name of the type.

throwOnError
Boolean

true Aby zgłosić wyjątek, jeśli nie znaleziono typu; false do zwrócenia null .true to throw an exception if the type is not found; false to return null.

ignoreCase
Boolean

true Aby zignorować wielkość liter nazwy typu; w przeciwnym razie false .true to ignore the case of the type name; otherwise, false.

Zwraca

Type

Obiekt, który reprezentuje określoną klasę.An object that represents the specified class.

Implementuje

Wyjątki

name jest nieprawidłowy.name is invalid.

-lub--or-

Długość name przekracza 1024 znaków.The length of name exceeds 1024 characters.

name to null.name is null.

throwOnError jest true i nie można odnaleźć typu.throwOnError is true, and the type cannot be found.

name wymaga zestawu zależnego, którego nie można znaleźć.name requires a dependent assembly that could not be found.

name wymaga zestawu zależnego, który został znaleziony, ale nie można go załadować.name requires a dependent assembly that was found but could not be loaded.

-lub--or-

Bieżący zestaw został załadowany do kontekstu tylko odbicia i name wymaga zestawu zależnego, który nie został wstępnie załadowany.The current assembly was loaded into the reflection-only context, and name requires a dependent assembly that was not preloaded.

name wymaga zestawu zależnego, ale plik nie jest prawidłowym zestawem.name requires a dependent assembly, but the file is not a valid assembly.

-lub--or-

name wymaga zestawu zależnego, który został skompilowany dla wersji środowiska uruchomieniowego w późniejszym czasie niż aktualnie załadowana wersja.name requires a dependent assembly which was compiled for a version of the runtime later than the currently loaded version.

Uwagi

Ta metoda przeszukuje tylko bieżące wystąpienie zestawu.This method only searches the current assembly instance. nameParametr zawiera przestrzeń nazw, ale nie zestaw.The name parameter includes the namespace but not the assembly. Aby wyszukać inne zestawy dla typu, użyj Type.GetType(String) przeciążenia metody, które opcjonalnie mogą zawierać nazwę wyświetlaną zestawu jako część nazwy typu.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.

Uwaga

Jeśli typ został przekazany do innego zestawu, nadal jest zwracany przez tę metodę.If the type has been forwarded to another assembly, it is still returned by this method. Aby uzyskać informacje o przekazywaniu typów, zobacz przesyłanie dalej typu w środowisku uruchomieniowym języka wspólnego.For information on type forwarding, see Type Forwarding in the Common Language Runtime.

throwOnErrorParametr ma wpływ tylko na to, co się dzieje, gdy typ nie zostanie znaleziony.The throwOnError parameter only affects what happens when the type is not found. Nie ma to wpływu na wszystkie inne wyjątki, które mogą zostać zgłoszone.It does not affect any other exceptions that might be thrown. W szczególności, jeśli typ jest znaleziony, ale nie może być załadowany, TypeLoadException może być zgłaszany nawet wtedy, gdy throwOnError jest false .In particular, if the type is found but cannot be loaded, TypeLoadException can be thrown even if throwOnError is false.

Dotyczy

GetType(String, Boolean)

Pobiera Type obiekt o określonej nazwie w wystąpieniu zestawu i opcjonalnie zgłasza wyjątek, jeśli nie można odnaleźć typu.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);
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

Parametry

name
String

Pełna nazwa typu.The full name of the type.

throwOnError
Boolean

true Aby zgłosić wyjątek, jeśli nie znaleziono typu; false do zwrócenia null .true to throw an exception if the type is not found; false to return null.

Zwraca

Type

Obiekt, który reprezentuje określoną klasę.An object that represents the specified class.

Implementuje

Wyjątki

name jest nieprawidłowy.name is invalid.

-lub--or-

Długość name przekracza 1024 znaków.The length of name exceeds 1024 characters.

name to null.name is null.

throwOnError jest true i nie można odnaleźć typu.throwOnError is true, and the type cannot be found.

name wymaga zestawu zależnego, którego nie można znaleźć.name requires a dependent assembly that could not be found.

name wymaga zestawu zależnego, który został znaleziony, ale nie można go załadować.name requires a dependent assembly that was found but could not be loaded.

-lub--or-

Bieżący zestaw został załadowany do kontekstu tylko odbicia i name wymaga zestawu zależnego, który nie został wstępnie załadowany.The current assembly was loaded into the reflection-only context, and name requires a dependent assembly that was not preloaded.

name wymaga zestawu zależnego, ale plik nie jest prawidłowym zestawem.name requires a dependent assembly, but the file is not a valid assembly.

-lub--or-

name wymaga zestawu zależnego, który został skompilowany dla wersji środowiska uruchomieniowego w późniejszym czasie niż aktualnie załadowana wersja.name requires a dependent assembly which was compiled for a version of the runtime later than the currently loaded version.

Uwagi

Ta metoda przeszukuje tylko bieżące wystąpienie zestawu.This method only searches the current assembly instance. nameParametr zawiera przestrzeń nazw, ale nie zestaw.The name parameter includes the namespace but not the assembly. Aby wyszukać inne zestawy dla typu, użyj Type.GetType(String) przeciążenia metody, które opcjonalnie mogą zawierać nazwę wyświetlaną zestawu jako część nazwy typu.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.

Uwaga

Jeśli typ został przekazany do innego zestawu, nadal jest zwracany przez tę metodę.If the type has been forwarded to another assembly, it is still returned by this method. Aby uzyskać informacje o przekazywaniu typów, zobacz przesyłanie dalej typu w środowisku uruchomieniowym języka wspólnego.For information on type forwarding, see Type Forwarding in the Common Language Runtime.

throwOnErrorParametr ma wpływ tylko na to, co się dzieje, gdy typ nie zostanie znaleziony.The throwOnError parameter only affects what happens when the type is not found. Nie ma to wpływu na wszystkie inne wyjątki, które mogą zostać zgłoszone.It does not affect any other exceptions that might be thrown. W szczególności, jeśli typ jest znaleziony, ale nie może być załadowany, TypeLoadException może być zgłaszany nawet wtedy, gdy throwOnError jest false .In particular, if the type is found but cannot be loaded, TypeLoadException can be thrown even if throwOnError is false.

Dotyczy

GetType(String)

Pobiera Type obiekt o określonej nazwie w wystąpieniu zestawu.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);
public virtual Type? GetType (string name);
override this.GetType : string -> Type
Public Overridable Function GetType (name As String) As Type

Parametry

name
String

Pełna nazwa typu.The full name of the type.

Zwraca

Type

Obiekt, który reprezentuje określoną klasę lub null nie można odnaleźć klasy.An object that represents the specified class, or null if the class is not found.

Implementuje

Wyjątki

name jest nieprawidłowy.name is invalid.

name to null.name is null.

name wymaga zestawu zależnego, którego nie można znaleźć.name requires a dependent assembly that could not be found.

name wymaga zestawu zależnego, który został znaleziony, ale nie można go załadować. name requires a dependent assembly that was found but could not be loaded.

-lub--or-

Bieżący zestaw został załadowany do kontekstu tylko odbicia i name wymaga zestawu zależnego, który nie został wstępnie załadowany.The current assembly was loaded into the reflection-only context, and name requires a dependent assembly that was not preloaded.

name wymaga zestawu zależnego, ale plik nie jest prawidłowym zestawem.name requires a dependent assembly, but the file is not a valid assembly.

-lub--or-

name wymaga zestawu zależnego, który został skompilowany dla wersji środowiska uruchomieniowego w późniejszym czasie niż aktualnie załadowana wersja.name requires a dependent assembly which was compiled for a version of the runtime later than the currently loaded version.

Przykłady

W poniższym przykładzie zdefiniowano klasę abstrakcyjną MeansOfTransportation w Transportation przestrzeni nazw.The following example defines an abstract MeansOfTransportation class in the Transportation namespace. Wywołuje GetType(String) metodę w celu pobrania jej Type obiektu, wywołuje metodę, Type.GetProperties Aby pobrać tablicę PropertyInfo obiektów reprezentujących właściwości typu, a następnie wyświetlić informacje o właściwościach abstrakcyjnych typu.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. Należy zauważyć, że wywołanie GetType(String) metody używa w pełni kwalifikowanej nazwy typu (czyli jej przestrzeni nazw wraz z nazwą typu).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)

Uwagi

Ta metoda przeszukuje tylko bieżące wystąpienie zestawu.This method only searches the current assembly instance. nameParametr zawiera przestrzeń nazw, ale nie zestaw.The name parameter includes the namespace but not the assembly. Aby wyszukać inne zestawy dla typu, użyj Type.GetType(String) przeciążenia metody, które opcjonalnie mogą zawierać nazwę wyświetlaną zestawu jako część nazwy typu.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.

Uwaga

Jeśli typ został przekazany do innego zestawu, nadal jest zwracany przez tę metodę.If the type has been forwarded to another assembly, it is still returned by this method. Aby uzyskać informacje o przekazywaniu typów, zobacz przesyłanie dalej typu w środowisku uruchomieniowym języka wspólnego.For information on type forwarding, see Type Forwarding in the Common Language Runtime.

Dotyczy

GetType()

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

Zwraca

Type

Implementuje

Dotyczy