Assembly.GetType Methode

Definitie

Hiermee haalt u het object op dat het Type opgegeven type vertegenwoordigt.

Overloads

Name Description
GetType(String, Boolean, Boolean)

Hiermee haalt u het Type object op met de opgegeven naam in het assembly-exemplaar, met de opties voor het negeren van het hoofdlettergebruik en het genereren van een uitzondering als het type niet wordt gevonden.

GetType(String, Boolean)

Haalt het Type object op met de opgegeven naam in het assembly-exemplaar en genereert eventueel een uitzondering als het type niet wordt gevonden.

GetType()
GetType(String)

Hiermee haalt u het Type object op met de opgegeven naam in het assembly-exemplaar.

GetType(String, Boolean, Boolean)

Hiermee haalt u het Type object op met de opgegeven naam in het assembly-exemplaar, met de opties voor het negeren van het hoofdlettergebruik en het genereren van een uitzondering als het type niet wordt gevonden.

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

Parameters

name
String

De volledige naam van het type.

throwOnError
Boolean

true om een uitzondering te genereren als het type niet wordt gevonden; false om terug te keren null.

ignoreCase
Boolean

true om het geval van de typenaam te negeren; anders, false.

Retouren

Een object dat de opgegeven klasse vertegenwoordigt.

Implementeringen

Uitzonderingen

name is ongeldig.

– of –

De lengte van name meer dan 1024 tekens.

name is null.

throwOnError is trueen het type kan niet worden gevonden.

name vereist een afhankelijke assembly die niet kan worden gevonden.

name vereist een afhankelijke assembly die is gevonden, maar niet kan worden geladen.

– of –

De huidige assembly is geladen in de context alleen voor weerspiegeling en name vereist een afhankelijke assembly die niet vooraf is geladen.

name vereist een afhankelijke assembly, maar het bestand is geen geldige assembly voor de momenteel geladen runtime.

Opmerkingen

Met deze methode wordt alleen gezocht in het huidige assembly-exemplaar. De name parameter bevat de naamruimte, maar niet de assembly. Als u andere assembly's voor een type wilt doorzoeken, gebruikt u de overbelasting van de Type.GetType(String) methode, die desgewenst een weergavenaam van de assembly kan bevatten als onderdeel van de typenaam.

In .NET Core/.NET 5+, als er assembly-gekwalificeerde algemene typeparameters in de typenaamtekenreeks staan, worden deze assemblyverwijzingen geladen door de AssemblyLoadContext van de methode die Assembly.GetType wordt genoemd, of door de context AssemblyLoadContext.CurrentContextualReflectionContext als deze is ingesteld.

Note

Als het type is doorgestuurd naar een andere assembly, wordt het nog steeds geretourneerd door deze methode. Zie Type Forwarding in common Language Runtime voor meer informatie over het doorsturen van typen.

De throwOnError parameter is alleen van invloed op wat er gebeurt wanneer het type niet wordt gevonden. Dit heeft geen invloed op andere uitzonderingen die kunnen worden gegenereerd. In het bijzonder, als het type wordt gevonden maar niet kan worden geladen, kan worden gegenereerd, TypeLoadException zelfs als throwOnError dat het is false.

Van toepassing op

GetType(String, Boolean)

Haalt het Type object op met de opgegeven naam in het assembly-exemplaar en genereert eventueel een uitzondering als het type niet wordt gevonden.

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

Parameters

name
String

De volledige naam van het type.

throwOnError
Boolean

true om een uitzondering te genereren als het type niet wordt gevonden; false om terug te keren null.

Retouren

Een object dat de opgegeven klasse vertegenwoordigt.

Implementeringen

Uitzonderingen

name is ongeldig.

– of –

De lengte van name meer dan 1024 tekens.

name is null.

throwOnError is trueen het type kan niet worden gevonden.

name vereist een afhankelijke assembly die niet kan worden gevonden.

name vereist een afhankelijke assembly die is gevonden, maar niet kan worden geladen.

– of –

De huidige assembly is geladen in de context alleen voor weerspiegeling en name vereist een afhankelijke assembly die niet vooraf is geladen.

name vereist een afhankelijke assembly, maar het bestand is geen geldige assembly voor de momenteel geladen runtime.

Opmerkingen

Met deze methode wordt alleen gezocht in het huidige assembly-exemplaar. De name parameter bevat de naamruimte, maar niet de assembly. Als u andere assembly's voor een type wilt doorzoeken, gebruikt u de overbelasting van de Type.GetType(String) methode, die desgewenst een weergavenaam van de assembly kan bevatten als onderdeel van de typenaam.

In .NET Core/.NET 5+, als er assembly-gekwalificeerde algemene typeparameters in de typenaamtekenreeks staan, worden deze assemblyverwijzingen geladen door de AssemblyLoadContext van de methode die Assembly.GetType wordt genoemd, of door de context AssemblyLoadContext.CurrentContextualReflectionContext als deze is ingesteld.

Note

Als het type is doorgestuurd naar een andere assembly, wordt het nog steeds geretourneerd door deze methode. Zie Type Forwarding in common Language Runtime voor meer informatie over het doorsturen van typen.

De throwOnError parameter is alleen van invloed op wat er gebeurt wanneer het type niet wordt gevonden. Dit heeft geen invloed op andere uitzonderingen die kunnen worden gegenereerd. In het bijzonder, als het type wordt gevonden maar niet kan worden geladen, kan worden gegenereerd, TypeLoadException zelfs als throwOnError dat het is false.

Van toepassing op

GetType()

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

Retouren

Implementeringen

Van toepassing op

GetType(String)

Hiermee haalt u het Type object op met de opgegeven naam in het assembly-exemplaar.

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

Parameters

name
String

De volledige naam van het type.

Retouren

Een object dat de opgegeven klasse vertegenwoordigt of null als de klasse niet wordt gevonden.

Implementeringen

Uitzonderingen

name is ongeldig.

name is null.

name vereist een afhankelijke assembly die niet kan worden gevonden.

name vereist een afhankelijke assembly die is gevonden, maar niet kan worden geladen.

– of –

De huidige assembly is geladen in de context alleen voor weerspiegeling en name vereist een afhankelijke assembly die niet vooraf is geladen.

name vereist een afhankelijke assembly, maar het bestand is geen geldige assembly voor de momenteel geladen runtime.

Voorbeelden

In het volgende voorbeeld wordt een abstracte MeansOfTransportation klasse in de Transportation naamruimte gedefinieerd. De methode wordt aangeroepen om het GetType(String) object op te halen Type , roept de Type.GetProperties methode aan om een matrix met objecten op te halen die de eigenschappen van PropertyInfo het type vertegenwoordigen en geeft vervolgens informatie weer over de abstracte eigenschappen van het type. Houd er rekening mee dat de aanroep van de GetType(String) methode gebruikmaakt van de volledig gekwalificeerde naam van het type (dat wil weten de naamruimte samen met de naam van het type).

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)

Opmerkingen

Met deze methode wordt alleen gezocht in het huidige assembly-exemplaar. De name parameter bevat de naamruimte, maar niet de assembly. Als u andere assembly's voor een type wilt doorzoeken, gebruikt u de overbelasting van de Type.GetType(String) methode, die desgewenst een weergavenaam van de assembly kan bevatten als onderdeel van de typenaam.

In .NET Core/.NET 5+, als er assembly-gekwalificeerde algemene typeparameters in de typenaamtekenreeks staan, worden deze assemblyverwijzingen geladen door de AssemblyLoadContext van de methode die Assembly.GetType wordt genoemd, of door de context AssemblyLoadContext.CurrentContextualReflectionContext als deze is ingesteld.

Note

Als het type is doorgestuurd naar een andere assembly, wordt het nog steeds geretourneerd door deze methode. Zie Type Forwarding in common Language Runtime voor meer informatie over het doorsturen van typen.

Van toepassing op