Assembly.GetType Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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 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 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)
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.