Type.GetType Type.GetType Type.GetType Type.GetType Method

Definition

Ruft ein Type-Objekt ab, das den angegebenen Typ darstellt.Gets a Type object that represents the specified type.

Überlädt

GetType() GetType() GetType() GetType()

Ruft den aktuellen Type ab.Gets the current Type.

GetType(String) GetType(String) GetType(String) GetType(String)

Ruft den Type mit dem angegebenen Namen ab. Bei der Suche wird die Groß-/Kleinschreibung beachtet.Gets the Type with the specified name, performing a case-sensitive search.

GetType(String, Boolean) GetType(String, Boolean) GetType(String, Boolean) GetType(String, Boolean)

Ruft den Type mit dem angegebenen Namen ab. Bei der Suche wird die Groß-/Kleinschreibung beachtet. Dabei wird angegeben, ob eine Ausnahme ausgelöst werden soll, wenn der Typ nicht gefunden wird.Gets the Type with the specified name, performing a case-sensitive search and specifying whether to throw an exception if the type is not found.

GetType(String, Boolean, Boolean) GetType(String, Boolean, Boolean) GetType(String, Boolean, Boolean) GetType(String, Boolean, Boolean)

Ruft den Type mit dem angegebenen Namen ab. Dabei wird angegeben, ob bei der Suche Groß- und Kleinschreibung berücksichtigt werden soll und ob eine Ausnahme ausgelöst werden soll, wenn der Typ nicht gefunden wird.Gets the Type with the specified name, specifying whether to throw an exception if the type is not found and whether to perform a case-sensitive search.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>)

Ruft den Typ mit dem angegebenen Namen ab und stellt optional benutzerdefinierte Methoden bereit, um die Assembly und den Typ aufzulösen.Gets the type with the specified name, optionally providing custom methods to resolve the assembly and the type.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean)

Ruft den Typ mit dem angegebenen Namen ab. Dabei wird angegeben, ob eine Ausnahme ausgelöst werden soll, wenn der Typ nicht gefunden wird, und optional werden benutzerdefinierte Methoden bereitgestellt, um die Assembly und den Typ aufzulösen.Gets the type with the specified name, specifying whether to throw an exception if the type is not found, and optionally providing custom methods to resolve the assembly and the type.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean)

Ruft den Typ mit dem angegebenen Namen ab. Dabei wird angegeben, ob bei der Suche die Groß-/Kleinschreibung beachtet werden soll und ob eine Ausnahme ausgelöst werden soll, wenn der Typ nicht gefunden wird, und optional werden benutzerdefinierte Methoden bereitgestellt, um die Assembly und den Typ aufzulösen.Gets the type with the specified name, specifying whether to perform a case-sensitive search and whether to throw an exception if the type is not found, and optionally providing custom methods to resolve the assembly and the type.

GetType() GetType() GetType() GetType()

Ruft den aktuellen Type ab.Gets the current Type.

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

Gibt zurück

Der aktuelle Type.The current Type.

Implementiert

Ausnahmen

Ein Klasseninitialisierer wird aufgerufen und löst eine Ausnahme aus.A class initializer is invoked and throws an exception.

Siehe auch

GetType(String) GetType(String) GetType(String) GetType(String)

Ruft den Type mit dem angegebenen Namen ab. Bei der Suche wird die Groß-/Kleinschreibung beachtet.Gets the Type with the specified name, performing a case-sensitive search.

public:
 static Type ^ GetType(System::String ^ typeName);
public static Type GetType (string typeName);
static member GetType : string -> Type
Public Shared Function GetType (typeName As String) As Type

Parameter

typeName
String String String String

Der durch die Assembly bezeichnete Name des abzurufenden Typs.The assembly-qualified name of the type to get. Siehe AssemblyQualifiedName.See AssemblyQualifiedName. Wenn sich der Typ in der aktuell ausgeführten Assembly oder in Mscorlib.dll befindet, ist eine Angabe des Typnamens einschließlich des qualifizierenden Namespace ausreichend.If the type is in the currently executing assembly or in Mscorlib.dll, it is sufficient to supply the type name qualified by its namespace.

Gibt zurück

Der Typ mit dem angegebenen Namen, sofern gefunden, andernfalls null.The type with the specified name, if found; otherwise, null.

Ausnahmen

Ein Klasseninitialisierer wird aufgerufen und löst eine Ausnahme aus.A class initializer is invoked and throws an exception.

typeName stellt einen generischen Typ dar, der einen Zeigertyp, einen ByRef-Typ oder Void als eines seiner Typargumente aufweist.typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments.

- oder --or- typeName stellt einen generischen Typ dar, der eine falsche Anzahl von Typargumenten aufweist.typeName represents a generic type that has an incorrect number of type arguments.

- oder --or- typeName stellt einen generischen Typ dar, und eines seiner Typargumente erfüllt nicht die Einschränkungen für den entsprechenden Typparameter.typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

typeName stellt ein Array von TypedReference dar.typeName represents an array of TypedReference.

Fangen Sie in .NET für Windows Store-Apps oder der portablen Klassenbibliothek stattdessen die Basisklassenausnahme IOException ab.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, IOException, instead.

Die Assembly oder eine der zugehörigen Abhängigkeiten wurde gefunden, konnte aber nicht geladen werden.The assembly or one of its dependencies was found, but could not be loaded.

Die Assembly oder eine der zugehörigen Abhängigkeiten ist ungültig.The assembly or one of its dependencies is not valid.

- oder --or- Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und die Assembly wurde mit einer höheren Version kompiliert.Version 2.0 or later of the common language runtime is currently loaded, and the assembly was compiled with a later version.

Beispiele

Das folgende Beispiel ruft den Typ des System.Int32 und verwendet das Typobjekt zum Anzeigen der FullName Eigenschaft System.Int32.The following example retrieves the type of System.Int32 and uses that type object to display the FullName property of System.Int32.

using namespace System;

int main()
{
   try {
      // Get the type of a specified class.
      Type^ myType1 = Type::GetType( "System.Int32" );
      Console::WriteLine( "The full name is {0}.\n", myType1->FullName );
   }
   catch ( TypeLoadException^ e ) {
       Console::WriteLine("{0}: Unable to load type System.Int32",
                          e->GetType()->Name);
   }

   try {
      // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
      Type^ myType2 = Type::GetType( "NoneSuch", true );
      Console::WriteLine( "The full name is {0}.", myType2->FullName );
   }
   catch ( TypeLoadException^ e ) {
       Console::WriteLine("{0}: Unable to load type NoneSuch",
                          e->GetType()->Name);
   }

}
// The example displays the following output:
//       The full name is System.Int32.
//
//       TypeLoadException: Unable to load type NoneSuch
using System;

class Example
{
     public static void Main()
     {
         try {
             // Get the type of a specified class.
             Type myType1 = Type.GetType("System.Int32");
             Console.WriteLine("The full name is {0}.\n", myType1.FullName);
         }
         catch (TypeLoadException e)
         {
            Console.WriteLine("{0}: Unable to load type System.Int32", e.GetType().Name);
         }

         try {
             // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
             Type myType2 = Type.GetType("NoneSuch", true);
             Console.WriteLine("The full name is {0}.", myType2.FullName);
         }
         catch(TypeLoadException e) {
            Console.WriteLine("{0}: Unable to load type NoneSuch", e.GetType().Name);
         }
     }
}
// The example displays the following output:
//       The full name is System.Int32.
//
//       TypeLoadException: Unable to load type NoneSuch
Class Example
     Public Shared Sub Main()
         Try
             ' Get the type of the specified class.
             Dim myType1 As Type = Type.GetType("System.Int32")
             Console.WriteLine("The full name is {0}.", myType1.FullName)
         Catch e As TypeLoadException
             Console.WriteLine("{0}: Unable to load type System.Int32",
                               e.GetType().Name)
         End Try

         Console.WriteLine()

         Try
             ' Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
             Dim myType2 As Type = Type.GetType("NoneSuch", True)
             Console.WriteLine("The full name is {0}.", myType2.FullName)
         Catch e As TypeLoadException
             Console.WriteLine("{0}: Unable to load type NoneSuch", e.GetType().Name)
         End Try
     End Sub
End Class
' The example displays the following output:
'       The full name is System.Int32.
'
'       TypeLoadException: Unable to load type NoneSuch

Hinweise

Können Sie die GetType Methode zum Abrufen einer Type Objekt für einen Typ in einer anderen Assembly, wenn Sie die Assembly qualifizierten Namen kennen, die aus abgerufen werden können AssemblyQualifiedName.You can use the GetType method to obtain a Type object for a type in another assembly if you know its assembly-qualified name, which can be obtained from AssemblyQualifiedName. GetType führt zum Laden der Assembly im angegebenen typeName.GetType causes loading of the assembly specified in typeName. Sie können auch laden eine Assembly unter Verwendung der Assembly.Load -Methode und anschließend auf die Assembly.GetType oder Assembly.GetTypes -Methode zum Abrufen Type Objekte.You can also load an assembly using the Assembly.Load method, and then use the Assembly.GetType or Assembly.GetTypes method to get Type objects. Wenn ein Typ in einer Assembly mit dem Programm zur Kompilierzeit bekannt ist, ist es effizienter, verwenden Sie typeof in C# oder GetType -Operator in Visual Basic.If a type is in an assembly known to your program at compile time, it is more efficient to use typeof in C# or the GetType operator in Visual Basic.

Hinweis

Wenn typeName kann nicht gefunden werden, den Aufruf der GetType(String) Methodenrückgabe null.If typeName cannot be found, the call to the GetType(String) method returns null. Es löst keine Ausnahme aus.It does not throw an exception. Um zu steuern, ob eine Ausnahme wird ausgelöst, rufen Sie eine Überladung von der GetType Methode mit einem throwOnError Parameter.To control whether an exception is thrown, call an overload of the GetType method that has a throwOnError parameter.

GetType funktioniert nur für Assemblys, die vom Datenträger geladen.GetType only works on assemblies loaded from disk. Aufrufen GetType zum Nachschlagen eines Typs in einer dynamischen Assembly definiert, definiert der System.Reflection.Emit Services erhalten Sie möglicherweise inkonsistentes Verhalten.If you call GetType to look up a type defined in a dynamic assembly defined using the System.Reflection.Emit services, you might get inconsistent behavior. Das Verhalten abhängig, ob die dynamische Assembly persistent, d. h. ist, wird erstellt, mit der RunAndSave oder Save Zugriff auf die Modi für die System.Reflection.Emit.AssemblyBuilderAccess Enumeration.The behavior depends on whether the dynamic assembly is persistent, that is, created using the RunAndSave or Save access modes of the System.Reflection.Emit.AssemblyBuilderAccess enumeration. Wenn die dynamische Assembly persistent ist und bevor Sie auf den Datenträger geschrieben wurde GetType wird aufgerufen, das Ladeprogramm die gespeicherte Assembly sucht, auf dem Datenträger, lädt die Assembly und ruft den Typ aus dieser Assembly ab.If the dynamic assembly is persistent and has been written to disk before GetType is called, the loader finds the saved assembly on disk, loads that assembly, and retrieves the type from that assembly. Wenn die Assembly nicht gespeichert wurde, wenn auf dem Datenträger GetType aufgerufen wird, wird der Methodenrückgabe null.If the assembly has not been saved to disk when GetType is called, the method returns null. GetType flüchtige dynamische Assemblys versteht nicht; aus diesem Grund Aufrufen GetType zum Abrufen eines Typs in eine vorübergehende dynamische Assembly gibt null.GetType does not understand transient dynamic assemblies; therefore, calling GetType to retrieve a type in a transient dynamic assembly returns null.

Mit GetType für ein dynamisches Modul, abonnieren das AppDomain.AssemblyResolve Ereignis, und rufen GetType vor dem Speichern.To use GetType on a dynamic module, subscribe to the AppDomain.AssemblyResolve event and call GetType before saving. Andernfalls erhalten Sie zwei Kopien der Assembly im Speicher.Otherwise, you will get two copies of the assembly in memory.

Die folgende Tabelle zeigt, welche Member einer Basisklasse von zurückgegeben werden die Get Methoden ein, wenn für einen Typ reflektieren.The following table shows what members of a base class are returned by the Get methods when reflecting on a type.

MemberartMember Type StatischStatic Nicht statischeNon-Static
KonstruktorConstructor NeinNo NeinNo
FeldField NeinNo Ja.Yes. Ein Feld ist immer nach Name und Signatur ausblenden.A field is always hide-by-name-and-signature.
eventEvent Nicht zutreffendNot applicable Die allgemeinen Typsystem ist, dass die Vererbung ist identisch mit der Methoden, die die Eigenschaft zu implementieren.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Reflektion behandelt Eigenschaften als nach Name und Signatur ausblenden.Reflection treats properties as hide-by-name-and-signature. Siehe Hinweis 2 weiter unten.See note 2 below.
MethodeMethod NeinNo Ja.Yes. Eine Methode (virtuelle und nicht virtuelle) möglich Ausblenden nach Namen oder nach Name und Signatur ausblenden.A method (both virtual and non-virtual) can be hide-by-name or hide-by-name-and-signature.
Geschachtelter TypNested Type NeinNo NeinNo
EigenschaftProperty Nicht zutreffendNot applicable Die allgemeinen Typsystem ist, dass die Vererbung ist identisch mit der Methoden, die die Eigenschaft zu implementieren.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Reflektion behandelt Eigenschaften als nach Name und Signatur ausblenden.Reflection treats properties as hide-by-name-and-signature. Siehe Hinweis 2 weiter unten.See note 2 below.
  1. Nach Name und Signatur ausblenden berücksichtigt, dass alle Teile der Signatur, die benutzerdefinierten Modifizierer, einschließlich Typen, Parametertypen, Sentinels enthält und nicht verwaltete Aufrufkonventionen zurückgeben.Hide-by-name-and-signature considers all of the parts of the signature, including custom modifiers, return types, parameter types, sentinels, and unmanaged calling conventions. Dies ist ein binärer Vergleich.This is a binary comparison.

  2. Für die Reflektion sind die Eigenschaften und Ereignisse nach Name und Signatur ausblenden.For reflection, properties and events are hide-by-name-and-signature. Wenn Sie eine Eigenschaft mit dem ein Get und Set-Accessor in der Basisklasse haben, aber die abgeleitete Klasse nur einen Get-Accessor hat, die Eigenschaft der abgeleiteten Klasse blendet die Basisklasseneigenschaft aus, und nicht werden auf den Setter in der Basisklasse zugreifen.If you have a property with both a get and a set accessor in the base class, but the derived class has only a get accessor, the derived class property hides the base class property, and you will not be able to access the setter on the base class.

  3. Benutzerdefinierte Attribute sind nicht Teil des allgemeinen Typsystems.Custom attributes are not part of the common type system.

Arrays oder COM-Typen werden nicht für durchsucht, es sei denn, sie bereits in der Tabelle der verfügbaren Klassen geladen wurden.Arrays or COM types are not searched for unless they have already been loaded into the table of available classes.

typeName Der Typname kann durch den Namespace oder eine Assembly qualifizierten Namen, der Angabe eines Assemblynamens enthält qualifiziert werden.typeName can be the type name qualified by its namespace or an assembly-qualified name that includes an assembly name specification. Siehe AssemblyQualifiedName.See AssemblyQualifiedName.

Wenn typeName umfasst den Namespace, jedoch nicht den Assemblynamen eingeben, sucht diese Methode nur die Assembly des aufrufenden Objekts und die Datei "mscorlib.dll", in dieser Reihenfolge.If typeName includes the namespace but not the assembly name, this method searches only the calling object's assembly and Mscorlib.dll, in that order. Wenn TypeName vollqualifizierten mit dem Assemblynamen für teilweise oder vollständig ist, sucht diese Methode, in der angegebenen Assembly.If typeName is fully qualified with the partial or complete assembly name, this method searches in the specified assembly. Wenn die Assembly einen starken Namen aufweist, muss ein vollständigen Assemblynamen.If the assembly has a strong name, a complete assembly name is required.

Die AssemblyQualifiedName Eigenschaft gibt einen vollqualifizierten Typnamen einschließlich geschachtelte Typen, Assemblyname und generische Typargumente.The AssemblyQualifiedName property returns a fully qualified type name including nested types, the assembly name, and generic type arguments. Alle Compiler, die die common Language Runtime unterstützen, werden der einfache Name einer geschachtelten Klasse geben an, und Reflektion erstellt einen ergänzten Namen in Übereinstimmung mit den folgenden Konventionen abgefragt.All compilers that support the common language runtime will emit the simple name of a nested class, and reflection constructs a mangled name when queried, in accordance with the following conventions.

Hinweis

In .NET Framework, Version 2.0 Prozessorarchitektur Assemblyidentität hinzugefügt wird, und kann als Teil der Assembly-Zeichenfolgen angegeben werden.In the .NET Framework version 2.0, processor architecture is added to assembly identity, and can be specified as part of assembly name strings. Z. B. "ProcessorArchitecture = Msil".For example, "ProcessorArchitecture=msil". Es ist jedoch nicht enthalten in der Zeichenfolge, die vom der AssemblyQualifiedName Eigenschaft aus Kompatibilitätsgründen.However, it is not included in the string returned by the AssemblyQualifiedName property, for compatibility reasons. Außerdem können Sie Typen laden, indem Sie erstellen eine AssemblyName -Objekt und die Übergabe an eine entsprechende Überladung von der Load Methode.You can also load types by creating an AssemblyName object and passing it to an appropriate overload of the Load method. Anschließend können Sie die Assembly.GetType -Methode zum Laden von Typen aus der Assembly.You can then use the Assembly.GetType method to load types from the assembly. Siehe auch AssemblyName.ProcessorArchitecture.See also AssemblyName.ProcessorArchitecture.

DelimiterDelimiter BedeutungMeaning
Umgekehrter Schrägstrich (\)Backslash (\) Escape-Zeichen.Escape character.
Graviszeichen (')Backtick (`) Steht vor einer oder mehreren Ziffern, die die Anzahl von Typparametern, die am Ende des Namens eines generischen Typs darstellt.Precedes one or more digits representing the number of type parameters, located at the end of the name of a generic type.
Eckige Klammern ([])Brackets ([]) Schließen Sie eine generischen Typargumentliste für einen konstruierten generischen Typ; Schließen Sie in einer Liste der Typargumente eine Assembly qualifizierten Typnamen ein.Enclose a generic type argument list, for a constructed generic type; within a type argument list, enclose an assembly-qualified type.
Komma (,)Comma (,) Der Name der Assembly wird vorangestellt.Precedes the Assembly name.
Punkt (.)Period (.) Bezeichnet die Namespacebezeichner.Denotes namespace identifiers.
Pluszeichen (+)Plus sign (+) Steht vor einer geschachtelten Klasse.Precedes a nested class.

Der vollqualifizierte Name für eine Klasse kann beispielsweise wie folgt aussehen:For example, the fully qualified name for a class might look like this:

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly  

Wenn der Namespace z.B. TopNamespace.Sub, würde die Zeichenfolge auf das Pluszeichen (+), ein Escapezeichen vorangestellt haben (\) zu verhindern, dass es als geschachteltes Trennzeichen interpretiert wird.If the namespace were TopNamespace.Sub+Namespace, then the string would have to precede the plus sign (+) with an escape character (\) to prevent it from being interpreted as a nesting separator. Reflektion gibt diese Zeichenfolge wie folgt aus:Reflection emits this string as follows:

TopNamespace.Sub\+Namespace.ContainingClass+NestedClass,MyAssembly  

Ein "++" wird "\+\+", und ein "\"wird"\\".A "++" becomes "\+\+", and a "\" becomes "\\".

Dieser qualifizierte Name persistent gespeichert werden kann, und später verwendet, um das Laden der Type.This qualified name can be persisted and later used to load the Type. Suchen und Laden eine Type, verwenden Sie GetType entweder mit dem Typ oder einen Namen geben nur mit dem Namen der Assembly qualifizierten Typ.To search for and load a Type, use GetType either with the type name only or with the assembly qualified type name. GetType mit dem Namen nur sucht die Type in der Assembly des Aufrufers, und klicken Sie dann in der System-Assembly.GetType with the type name only will look for the Type in the caller's assembly and then in the System assembly. GetType mit der Assembly qualifizierten Typnamen sucht die Type in jeder Assembly.GetType with the assembly qualified type name will look for the Type in any assembly.

Namen können nachfolgende Zeichen enthalten, zusätzliche Informationen über den Typ, z. B., ob der Typ ein Verweistyp, ein Zeigertyp oder einen Arraytyp ist.Type names may include trailing characters that denote additional information about the type, such as whether the type is a reference type, a pointer type or an array type. Verwenden Sie zum Abrufen der Typname ohne diese nachfolgenden Zeichen t.GetElementType().ToString(), wobei t ist der Typ.To retrieve the type name without these trailing characters, use t.GetElementType().ToString(), where t is the type.

Leerzeichen sind in allen Komponenten von Typnamen mit Ausnahme der Assemblyname relevant.Spaces are relevant in all type name components except the assembly name. Der Assemblyname Leerzeichen vor dem Trennzeichen ',' relevant, aber Leerzeichen nach dem Trennzeichen ',' werden ignoriert.In the assembly name, spaces before the ',' separator are relevant, but spaces after the ',' separator are ignored.

Der Name eines generischen Typs endet mit einem Graviszeichen (`) gefolgt von Ziffern, die die Anzahl der Argumente des generischen Typs darstellt.The name of a generic type ends with a backtick (`) followed by digits representing the number of generic type arguments. Dieser Name-mangling dient zum Zulassen von Compilern zur Unterstützung von generischer Typen mit demselben Namen aber mit einer unterschiedlichen Anzahl von Typparametern, im gleichen Gültigkeitsbereich auftritt.The purpose of this name mangling is to allow compilers to support generic types with the same name but with different numbers of type parameters, occurring in the same scope. Reflektion gibt z. B. die ergänzten Namen Tuple1andTupel2 die generischen Methoden Tuple(Of T) und Tuple(Of T0, T1) in Visual Basic oder Tuple<T> und Tupel\<T0, T1> in Visual c#.For example, reflection returns the mangled names Tuple1andTuple2 from the generic methods Tuple(Of T) and Tuple(Of T0, T1) in Visual Basic, or Tuple<T> and Tuple\<T0, T1> in Visual C#.

Bei generischen Typen wird die Typargumentliste in Klammern gesetzt, und die Typargumente durch Kommas getrennt.For generic types, the type argument list is enclosed in brackets, and the type arguments are separated by commas. Zum Beispiel eine generische Dictionary<TKey,TValue> verfügt über zwei Typparameter.For example, a generic Dictionary<TKey,TValue> has two type parameters. Ein Dictionary<TKey,TValue> von MyType mit Schlüsseln vom Typ String kann wie folgt dargestellt werden:A Dictionary<TKey,TValue> of MyType with keys of type String might be represented as follows:

System.Collections.Generic.Dictionary`2[System.String,MyType]  

Um eine Assembly qualifizierten Typnamen in einer Liste der Typargumente angeben, schließen Sie die Assembly qualifizierten Typnamen in eckige Klammern ein.To specify an assembly-qualified type within a type argument list, enclose the assembly-qualified type within brackets. Andernfalls werden die Kommas, die trennen die Teile der Assembly qualifizierten Namen, interpretiert, als Trennzeichen für zusätzliche Typargumente.Otherwise, the commas that separate the parts of the assembly-qualified name are interpreted as delimiting additional type arguments. Z. B. eine Dictionary<TKey,TValue> von MyType fromMyAssembly.dll, mit Schlüsseln vom Typ String, könnte wie folgt angegeben werden:For example, a Dictionary<TKey,TValue> of MyType fromMyAssembly.dll, with keys of type String, might be specified as follows:

Type.GetType("System.Collections.Generic.Dictionary`2[System.String,[MyType,MyAssembly]]")  

Hinweis

Ein Typ mit assemblyqualifikation kann in Klammern eingeschlossen werden, nur, wenn er in einer Liste der Parameter angezeigt wird.An assembly-qualified type can be enclosed in brackets only when it appears within a type parameter list. Die Regeln für die Suche von Assemblys für qualifizierte und unvollständigen Typen in Typparameterlisten sind identisch mit den Regeln für den qualifizierten und nicht qualifizierte nicht generische Typen.The rules for searching assemblies for qualified and unqualified types in type parameter lists are the same as the rules for qualified and unqualified nongeneric types.

Nullable-Typen sind ein besonderer Fall von generischen Typen.Nullable types are a special case of generic types. Beispielsweise eine auf NULL festlegbare Int32 wird dargestellt, durch die Zeichenfolge "System.Nullable'1[System.Int32]".For example, a nullable Int32 is represented by the string "System.Nullable`1[System.Int32]".

Hinweis

In c#, C++ und Visual Basic können Sie auch auf NULL festlegbare Typen, die mithilfe von Operatoren abrufen.In C#, C++, and Visual Basic you can also get nullable types using type operators. Z. B. die NULL-Werte zulassen Boolean Typ wird zurückgegeben, indem typeof(Nullable<bool>) in c# durch Nullable<Boolean>::typeid in C++, und durch GetType(Nullable(Of Boolean)) in Visual Basic.For example, the nullable Boolean type is returned by typeof(Nullable<bool>) in C#, by Nullable<Boolean>::typeid in C++, and by GetType(Nullable(Of Boolean)) in Visual Basic.

Die folgende Tabelle zeigt die Syntax, mit GetType für verschiedene Typen.The following table shows the syntax you use with GetType for various types.

Zum AbrufenTo Get VerwendungUse
Ein NULL-Werte zulässt Int32A nullable Int32 Type.GetType("System.Nullable`1[System.Int32]")
Ein nicht verwalteter Zeiger auf MyTypeAn unmanaged pointer to MyType Type.GetType("MyType*")
Ein nicht verwalteter Zeiger auf einen Zeiger auf MyTypeAn unmanaged pointer to a pointer to MyType Type.GetType("MyType**")
Ein verwalteter Zeiger oder Verweis auf MyTypeA managed pointer or reference to MyType Type.GetType("MyType&").Type.GetType("MyType&"). Beachten Sie, dass Verweise im Gegensatz zu Zeigern auf eine Ebene beschränkt sind.Note that unlike pointers, references are limited to one level.
Eine übergeordnete Klasse und eine geschachtelte Klasse.A parent class and a nested class Type.GetType("MyParentClass+MyNestedClass")
Ein eindimensionales Array mit einer unteren Grenze von 0A one-dimensional array with a lower bound of 0 Type.GetType("MyType[]")
Ein eindimensionales Array mit einem Unbekannter unterer GrenzeA one-dimensional array with an unknown lower bound Type.GetType("MyType[*]")
Ein Array mit n-dimensionalenAn n-dimensional array Ein Komma (,) innerhalb der Klammern eine insgesamt n-1 Mal.A comma (,) inside the brackets a total of n-1 times. Z. B. System.Object[,,] stellt ein dreidimensionales Object Array.For example, System.Object[,,] represents a three-dimensional Object array.
Ein Array von eindimensionale arraysAn array of one-dimensional arrays Type.GetType("MyType[][]")
Ein rechteckiges zweidimensionales Array mit Unbekannter unterer GrenzeA rectangular two-dimensional array with unknown lower bounds Type.GetType("MyType[,]")
Ein generischer Typ mit einem TypargumentA generic type with one type argument Type.GetType("MyGenericType`1[MyType]")
Ein generischer Typ mit zwei TypargumenteA generic type with two type arguments Type.GetType("MyGenericType`2[MyType,AnotherType]")
Ein generischer Typ mit zwei Argumenten der Assembly qualifizierten TypnamenA generic type with two assembly-qualified type arguments Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")
Ein mit assemblyqualifikation, generischer Typ mit einem Argument für die Assembly qualifizierten TypnamenAn assembly-qualified generic type with an assembly-qualified type argument Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly")
Ein generischer Typ, dessen Typargument eines generischen Typs mit zwei Argumente des Typs ist.A generic type whose type argument is a generic type with two type arguments Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]")
Siehe auch

GetType(String, Boolean) GetType(String, Boolean) GetType(String, Boolean) GetType(String, Boolean)

Ruft den Type mit dem angegebenen Namen ab. Bei der Suche wird die Groß-/Kleinschreibung beachtet. Dabei wird angegeben, ob eine Ausnahme ausgelöst werden soll, wenn der Typ nicht gefunden wird.Gets the Type with the specified name, performing a case-sensitive search and specifying whether to throw an exception if the type is not found.

public:
 static Type ^ GetType(System::String ^ typeName, bool throwOnError);
public static Type GetType (string typeName, bool throwOnError);
static member GetType : string * bool -> Type
Public Shared Function GetType (typeName As String, throwOnError As Boolean) As Type

Parameter

typeName
String String String String

Der durch die Assembly bezeichnete Name des abzurufenden Typs.The assembly-qualified name of the type to get. Siehe AssemblyQualifiedName.See AssemblyQualifiedName. Wenn sich der Typ in der aktuell ausgeführten Assembly oder in Mscorlib.dll befindet, ist eine Angabe des Typnamens einschließlich des qualifizierenden Namespace ausreichend.If the type is in the currently executing assembly or in Mscorlib.dll, it is sufficient to supply the type name qualified by its namespace.

throwOnError
Boolean Boolean Boolean Boolean

true, damit eine Ausnahme ausgelöst wird, wenn der Typ nicht gefunden werden kann, false, damit null zurückgegeben wird.true to throw an exception if the type cannot be found; false to return null. Die Angabe von false unterdrückt auch einige andere Ausnahmebedingungen, aber nicht alle.Specifying false also suppresses some other exception conditions, but not all of them. Informationen finden Sie im Abschnitt für Ausnahmen.See the Exceptions section.

Gibt zurück

Der Typ mit dem angegebenen Namen.The type with the specified name. Wenn der Typ nicht gefunden wird, gibt der throwOnError-Parameter an, ob null zurückgegeben oder eine Ausnahme ausgelöst wird.If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. In einigen Fällen wird unabhängig vom Wert von throwOnError eine Ausnahme ausgelöst.In some cases, an exception is thrown regardless of the value of throwOnError. Informationen finden Sie im Abschnitt für Ausnahmen.See the Exceptions section.

Ausnahmen

Ein Klasseninitialisierer wird aufgerufen und löst eine Ausnahme aus.A class initializer is invoked and throws an exception.

throwOnError ist true, und der Typ wurde nicht gefunden.throwOnError is true and the type is not found.

- oder --or- throwOnError ist true, und typeName enthält ungültige Zeichen, z. B. ein eingebettetes Tabstoppzeichen.throwOnError is true and typeName contains invalid characters, such as an embedded tab. - oder --or- throwOnError ist true, und typeName ist eine leere Zeichenfolge.throwOnError is true and typeName is an empty string.

- oder --or- throwOnError ist true, und typeName stellt einen Arraytyp mit einer ungültigen Größe dar.throwOnError is true and typeName represents an array type with an invalid size.

- oder --or- typeName stellt ein Array von TypedReference dar.typeName represents an array of TypedReference.

throwOnError ist true, und typeName enthält ungültige Syntax,throwOnError is true and typeName contains invalid syntax. beispielsweise "MyType[,*,]".For example, "MyType[,*,]".

- oder --or- typeName stellt einen generischen Typ dar, der einen Zeigertyp, einen ByRef-Typ oder Void als eines seiner Typargumente aufweist.typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments.

- oder --or- typeName stellt einen generischen Typ dar, der eine falsche Anzahl von Typargumenten aufweist.typeName represents a generic type that has an incorrect number of type arguments.

- oder --or- typeName stellt einen generischen Typ dar, und eines seiner Typargumente erfüllt nicht die Einschränkungen für den entsprechenden Typparameter.typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnError ist true, und die Assembly oder eine der zugehörigen Abhängigkeiten wurde nicht gefunden.throwOnError is true and the assembly or one of its dependencies was not found.

Fangen Sie in .NET für Windows Store-Apps oder der portablen Klassenbibliothek stattdessen die Basisklassenausnahme IOException ab.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, IOException, instead.

Die Assembly oder eine der zugehörigen Abhängigkeiten wurde gefunden, konnte aber nicht geladen werden.The assembly or one of its dependencies was found, but could not be loaded.

Die Assembly oder eine der zugehörigen Abhängigkeiten ist ungültig.The assembly or one of its dependencies is not valid.

- oder --or- Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und die Assembly wurde mit einer höheren Version kompiliert.Version 2.0 or later of the common language runtime is currently loaded, and the assembly was compiled with a later version.

Beispiele

Das folgende Beispiel ruft den Typ des System.Int32 und verwendet das Typobjekt zum Anzeigen der FullName Eigenschaft System.Int32.The following example retrieves the type of System.Int32 and uses that type object to display the FullName property of System.Int32. Wenn ein Typobjekt auf eine Assembly, die nicht vorhanden ist verweist, wird in diesem Beispiel wird eine Ausnahme ausgelöst.If a type object refers to an assembly that does not exist, this example throws an exception.

using namespace System;

int main()
{
   try {
      // Get the type of a specified class.
      Type^ myType1 = Type::GetType( "System.Int32" );
      Console::WriteLine( "The full name is {0}.\n", myType1->FullName );
   }
   catch ( TypeLoadException^ e ) {
       Console::WriteLine("{0}: Unable to load type System.Int32",
                          e->GetType()->Name);
   }

   try {
      // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
      Type^ myType2 = Type::GetType( "NoneSuch", true );
      Console::WriteLine( "The full name is {0}.", myType2->FullName );
   }
   catch ( TypeLoadException^ e ) {
       Console::WriteLine("{0}: Unable to load type NoneSuch",
                          e->GetType()->Name);
   }

}
// The example displays the following output:
//       The full name is System.Int32.
//
//       TypeLoadException: Unable to load type NoneSuch
using System;

class Example
{
     public static void Main()
     {
         try {
             // Get the type of a specified class.
             Type myType1 = Type.GetType("System.Int32");
             Console.WriteLine("The full name is {0}.\n", myType1.FullName);
         }
         catch (TypeLoadException e)
         {
            Console.WriteLine("{0}: Unable to load type System.Int32", e.GetType().Name);
         }

         try {
             // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
             Type myType2 = Type.GetType("NoneSuch", true);
             Console.WriteLine("The full name is {0}.", myType2.FullName);
         }
         catch(TypeLoadException e) {
            Console.WriteLine("{0}: Unable to load type NoneSuch", e.GetType().Name);
         }
     }
}
// The example displays the following output:
//       The full name is System.Int32.
//
//       TypeLoadException: Unable to load type NoneSuch
Class Example
     Public Shared Sub Main()
         Try
             ' Get the type of the specified class.
             Dim myType1 As Type = Type.GetType("System.Int32")
             Console.WriteLine("The full name is {0}.", myType1.FullName)
         Catch e As TypeLoadException
             Console.WriteLine("{0}: Unable to load type System.Int32",
                               e.GetType().Name)
         End Try

         Console.WriteLine()

         Try
             ' Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
             Dim myType2 As Type = Type.GetType("NoneSuch", True)
             Console.WriteLine("The full name is {0}.", myType2.FullName)
         Catch e As TypeLoadException
             Console.WriteLine("{0}: Unable to load type NoneSuch", e.GetType().Name)
         End Try
     End Sub
End Class
' The example displays the following output:
'       The full name is System.Int32.
'
'       TypeLoadException: Unable to load type NoneSuch

Hinweise

Können Sie die GetType Methode zum Abrufen einer Type Objekt für einen Typ in einer anderen Assembly, wenn Sie die Assembly qualifizierten Namen kennen, die aus abgerufen werden können AssemblyQualifiedName.You can use the GetType method to obtain a Type object for a type in another assembly if you know its assembly-qualified name, which can be obtained from AssemblyQualifiedName. GetType führt zum Laden der Assembly im angegebenen typeName.GetType causes loading of the assembly specified in typeName. Sie können auch laden eine Assembly unter Verwendung der Assembly.Load -Methode und anschließend auf die Assembly.GetType oder Assembly.GetTypes -Methode zum Abrufen Type Objekte.You can also load an assembly using the Assembly.Load method, and then use the Assembly.GetType or Assembly.GetTypes method to get Type objects. Wenn ein Typ in einer Assembly mit dem Programm zur Kompilierzeit bekannt ist, ist es effizienter, verwenden Sie typeof in C# oder GetType -Operator in Visual Basic.If a type is in an assembly known to your program at compile time, it is more efficient to use typeof in C# or the GetType operator in Visual Basic.

GetType funktioniert nur für Assemblys, die vom Datenträger geladen.GetType only works on assemblies loaded from disk. Aufrufen GetType zum Nachschlagen eines Typs in einer dynamischen Assembly definiert, definiert der System.Reflection.Emit Services erhalten Sie möglicherweise inkonsistentes Verhalten.If you call GetType to look up a type defined in a dynamic assembly defined using the System.Reflection.Emit services, you might get inconsistent behavior. Das Verhalten abhängig, ob die dynamische Assembly persistent, d. h. ist, wird erstellt, mit der RunAndSave oder Save Zugriff auf die Modi für die System.Reflection.Emit.AssemblyBuilderAccess Enumeration.The behavior depends on whether the dynamic assembly is persistent, that is, created using the RunAndSave or Save access modes of the System.Reflection.Emit.AssemblyBuilderAccess enumeration. Wenn die dynamische Assembly persistent ist und bevor Sie auf den Datenträger geschrieben wurde GetType wird aufgerufen, das Ladeprogramm die gespeicherte Assembly sucht, auf dem Datenträger, lädt die Assembly und ruft den Typ aus dieser Assembly ab.If the dynamic assembly is persistent and has been written to disk before GetType is called, the loader finds the saved assembly on disk, loads that assembly, and retrieves the type from that assembly. Wenn die Assembly nicht gespeichert wurde, wenn auf dem Datenträger GetType aufgerufen wird, wird der Methodenrückgabe null.If the assembly has not been saved to disk when GetType is called, the method returns null. GetType flüchtige dynamische Assemblys versteht nicht; aus diesem Grund Aufrufen GetType zum Abrufen eines Typs in eine vorübergehende dynamische Assembly gibt null.GetType does not understand transient dynamic assemblies; therefore, calling GetType to retrieve a type in a transient dynamic assembly returns null.

Mit GetType für ein dynamisches Modul, abonnieren das AppDomain.AssemblyResolve Ereignis, und rufen GetType vor dem Speichern.To use GetType on a dynamic module, subscribe to the AppDomain.AssemblyResolve event and call GetType before saving. Andernfalls erhalten Sie zwei Kopien der Assembly im Speicher.Otherwise, you will get two copies of the assembly in memory.

Die throwOnError Parameter gibt an, was geschieht, wenn der Typ wurde nicht gefunden, und auch bestimmte andere Ausnahmebedingungen unterdrückt, wie im Abschnitt für Ausnahmen beschrieben.The throwOnError parameter specifies what happens when the type is not found, and also suppresses certain other exception conditions, as described in the Exceptions section. Einige Ausnahmen werden ausgelöst, unabhängig vom Wert der throwOnError.Some exceptions are thrown regardless of the value of throwOnError. Wenn der Typ befindet sich aber nicht geladen werden, z. B. eine TypeLoadException wird ausgelöst, selbst wenn throwOnError ist false.For example, if the type is found but cannot be loaded, a TypeLoadException is thrown even if throwOnError is false.

Die folgende Tabelle zeigt, welche Member einer Basisklasse von zurückgegeben werden die Get Methoden ein, wenn für einen Typ reflektieren.The following table shows what members of a base class are returned by the Get methods when reflecting on a type.

MemberartMember Type StatischStatic Nicht statischeNon-Static
KonstruktorConstructor NeinNo NeinNo
FeldField NeinNo Ja.Yes. Ein Feld ist immer nach Name und Signatur ausblenden.A field is always hide-by-name-and-signature.
eventEvent Nicht zutreffendNot applicable Die allgemeinen Typsystem ist, dass die Vererbung ist identisch mit der Methoden, die die Eigenschaft zu implementieren.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Reflektion behandelt Eigenschaften als nach Name und Signatur ausblenden.Reflection treats properties as hide-by-name-and-signature. Siehe Hinweis 2 weiter unten.See note 2 below.
MethodeMethod NeinNo Ja.Yes. Eine Methode (virtuelle und nicht virtuelle) möglich Ausblenden nach Namen oder nach Name und Signatur ausblenden.A method (both virtual and non-virtual) can be hide-by-name or hide-by-name-and-signature.
Geschachtelter TypNested Type NeinNo NeinNo
EigenschaftProperty Nicht zutreffendNot applicable Die allgemeinen Typsystem ist, dass die Vererbung ist identisch mit der Methoden, die die Eigenschaft zu implementieren.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Reflektion behandelt Eigenschaften als nach Name und Signatur ausblenden.Reflection treats properties as hide-by-name-and-signature. Siehe Hinweis 2 weiter unten.See note 2 below.
  1. Nach Name und Signatur ausblenden berücksichtigt, dass alle Teile der Signatur, die benutzerdefinierten Modifizierer, einschließlich Typen, Parametertypen, Sentinels enthält und nicht verwaltete Aufrufkonventionen zurückgeben.Hide-by-name-and-signature considers all of the parts of the signature, including custom modifiers, return types, parameter types, sentinels, and unmanaged calling conventions. Dies ist ein binärer Vergleich.This is a binary comparison.

  2. Für die Reflektion sind die Eigenschaften und Ereignisse nach Name und Signatur ausblenden.For reflection, properties and events are hide-by-name-and-signature. Wenn Sie eine Eigenschaft mit dem ein Get und Set-Accessor in der Basisklasse haben, aber die abgeleitete Klasse nur einen Get-Accessor hat, die Eigenschaft der abgeleiteten Klasse blendet die Basisklasseneigenschaft aus, und nicht werden auf den Setter in der Basisklasse zugreifen.If you have a property with both a get and a set accessor in the base class, but the derived class has only a get accessor, the derived class property hides the base class property, and you will not be able to access the setter on the base class.

  3. Benutzerdefinierte Attribute sind nicht Teil des allgemeinen Typsystems.Custom attributes are not part of the common type system.

Arrays oder COM-Typen werden nicht für durchsucht, es sei denn, sie bereits in der Tabelle der verfügbaren Klassen geladen wurden.Arrays or COM types are not searched for unless they have already been loaded into the table of available classes.

typeName Der Typname kann durch den Namespace oder eine Assembly qualifizierten Namen, der Angabe eines Assemblynamens enthält qualifiziert werden.typeName can be the type name qualified by its namespace or an assembly-qualified name that includes an assembly name specification. Siehe AssemblyQualifiedName.See AssemblyQualifiedName.

Wenn typeName umfasst den Namespace, jedoch nicht den Assemblynamen eingeben, sucht diese Methode nur die Assembly des aufrufenden Objekts und die Datei "mscorlib.dll", in dieser Reihenfolge.If typeName includes the namespace but not the assembly name, this method searches only the calling object's assembly and Mscorlib.dll, in that order. Wenn TypeName vollqualifizierten mit dem Assemblynamen für teilweise oder vollständig ist, sucht diese Methode, in der angegebenen Assembly.If typeName is fully qualified with the partial or complete assembly name, this method searches in the specified assembly. Wenn die Assembly einen starken Namen aufweist, muss ein vollständigen Assemblynamen.If the assembly has a strong name, a complete assembly name is required.

Die AssemblyQualifiedName Eigenschaft gibt einen vollqualifizierten Typnamen einschließlich geschachtelte Typen, Assemblyname und generischen Argumente zurück.The AssemblyQualifiedName property returns a fully qualified type name including nested types, the assembly name, and generic arguments. Alle Compiler, die die common Language Runtime unterstützen, werden der einfache Name einer geschachtelten Klasse geben an, und Reflektion erstellt einen ergänzten Namen in Übereinstimmung mit den folgenden Konventionen abgefragt.All compilers that support the common language runtime will emit the simple name of a nested class, and reflection constructs a mangled name when queried, in accordance with the following conventions.

Hinweis

In .NET Framework, Version 2.0 Prozessorarchitektur Assemblyidentität hinzugefügt wird, und kann als Teil der Assembly-Zeichenfolgen angegeben werden.In the .NET Framework version 2.0, processor architecture is added to assembly identity, and can be specified as part of assembly name strings. Z. B. "ProcessorArchitecture = Msil".For example, "ProcessorArchitecture=msil". Es ist jedoch nicht enthalten in der Zeichenfolge, die vom der AssemblyQualifiedName Eigenschaft aus Kompatibilitätsgründen.However, it is not included in the string returned by the AssemblyQualifiedName property, for compatibility reasons. Außerdem können Sie Typen laden, indem Sie erstellen eine AssemblyName -Objekt und die Übergabe an eine entsprechende Überladung von der Load Methode.You can also load types by creating an AssemblyName object and passing it to an appropriate overload of the Load method. Anschließend können Sie die Assembly.GetType -Methode zum Laden von Typen aus der Assembly.You can then use the Assembly.GetType method to load types from the assembly. Siehe auch AssemblyName.ProcessorArchitecture.See also AssemblyName.ProcessorArchitecture.

DelimiterDelimiter BedeutungMeaning
Umgekehrter Schrägstrich (\)Backslash (\) Escape-Zeichen.Escape character.
Graviszeichen (')Backtick (`) Steht vor einer oder mehreren Ziffern, die die Anzahl von Typparametern, die am Ende des Namens eines generischen Typs darstellt.Precedes one or more digits representing the number of type parameters, located at the end of the name of a generic type.
Eckige Klammern ([])Brackets ([]) Schließen Sie eine generischen Typargumentliste für einen konstruierten generischen Typ; Schließen Sie in einer Liste der Typargumente eine Assembly qualifizierten Typnamen ein.Enclose a generic type argument list, for a constructed generic type; within a type argument list, enclose an assembly-qualified type.
Komma (,)Comma (,) Der Name der Assembly wird vorangestellt.Precedes the Assembly name.
Punkt (.)Period (.) Bezeichnet die Namespacebezeichner.Denotes namespace identifiers.
Pluszeichen (+)Plus sign (+) Steht vor einer geschachtelten Klasse.Precedes a nested class.

Der vollqualifizierte Name für eine Klasse kann beispielsweise wie folgt aussehen:For example, the fully qualified name for a class might look like this:

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly  

Wenn der Namespace z.B. TopNamespace.Sub, würde die Zeichenfolge auf das Pluszeichen (+), ein Escapezeichen vorangestellt haben (\) zu verhindern, dass es als geschachteltes Trennzeichen interpretiert wird.If the namespace were TopNamespace.Sub+Namespace, then the string would have to precede the plus sign (+) with an escape character (\) to prevent it from being interpreted as a nesting separator. Reflektion gibt diese Zeichenfolge wie folgt aus:Reflection emits this string as follows:

TopNamespace.Sub\+Namespace.ContainingClass+NestedClass,MyAssembly  

Ein "++" wird "\+\+", und ein "\"wird"\\".A "++" becomes "\+\+", and a "\" becomes "\\".

Dieser qualifizierte Name persistent gespeichert werden kann, und später verwendet, um das Laden der Type.This qualified name can be persisted and later used to load the Type. Suchen und Laden eine Type, verwenden Sie GetType entweder mit dem Typ oder einen Namen geben nur mit dem Namen der Assembly qualifizierten Typ.To search for and load a Type, use GetType either with the type name only or with the assembly qualified type name. GetType mit dem Namen nur sucht die Type in der Assembly des Aufrufers, und klicken Sie dann in der System-Assembly.GetType with the type name only will look for the Type in the caller's assembly and then in the System assembly. GetType mit der Assembly qualifizierten Typnamen sucht die Type in jeder Assembly.GetType with the assembly qualified type name will look for the Type in any assembly.

Namen können nachfolgende Zeichen enthalten, zusätzliche Informationen über den Typ, z. B., ob der Typ ein Verweistyp, ein Zeigertyp oder einen Arraytyp ist.Type names may include trailing characters that denote additional information about the type, such as whether the type is a reference type, a pointer type or an array type. Verwenden Sie zum Abrufen der Typname ohne diese nachfolgenden Zeichen t.GetElementType().ToString(), wobei t ist der Typ.To retrieve the type name without these trailing characters, use t.GetElementType().ToString(), where t is the type.

Leerzeichen sind in allen Komponenten von Typnamen mit Ausnahme der Assemblyname relevant.Spaces are relevant in all type name components except the assembly name. Der Assemblyname Leerzeichen vor dem Trennzeichen ',' relevant, aber Leerzeichen nach dem Trennzeichen ',' werden ignoriert.In the assembly name, spaces before the ',' separator are relevant, but spaces after the ',' separator are ignored.

Der Name eines generischen Typs endet mit einem Graviszeichen (`) gefolgt von Ziffern, die die Anzahl der Argumente des generischen Typs darstellt.The name of a generic type ends with a backtick (`) followed by digits representing the number of generic type arguments. Dieser Name-mangling dient zum Zulassen von Compilern zur Unterstützung von generischer Typen mit demselben Namen aber mit einer unterschiedlichen Anzahl von Typparametern, im gleichen Gültigkeitsbereich auftritt.The purpose of this name mangling is to allow compilers to support generic types with the same name but with different numbers of type parameters, occurring in the same scope. Reflektion gibt z. B. die ergänzten Namen Tuple1andTupel2 die generischen Methoden Tuple(Of T) und Tuple(Of T0, T1) in Visual Basic oder Tuple<T> und Tupel\<T0, T1> in Visual c#.For example, reflection returns the mangled names Tuple1andTuple2 from the generic methods Tuple(Of T) and Tuple(Of T0, T1) in Visual Basic, or Tuple<T> and Tuple\<T0, T1> in Visual C#.

Bei generischen Typen wird die Typargumentliste in Klammern gesetzt, und die Typargumente durch Kommas getrennt.For generic types, the type argument list is enclosed in brackets, and the type arguments are separated by commas. Zum Beispiel eine generische Dictionary<TKey,TValue> verfügt über zwei Typparameter.For example, a generic Dictionary<TKey,TValue> has two type parameters. Ein Dictionary<TKey,TValue> von MyType mit Schlüsseln vom Typ String kann wie folgt dargestellt werden:A Dictionary<TKey,TValue> of MyType with keys of type String might be represented as follows:

System.Collections.Generic.Dictionary`2[System.String,MyType]  

Um eine Assembly qualifizierten Typnamen in einer Liste der Typargumente angeben, schließen Sie die Assembly qualifizierten Typnamen in eckige Klammern ein.To specify an assembly-qualified type within a type argument list, enclose the assembly-qualified type within brackets. Andernfalls werden die Kommas, die trennen die Teile der Assembly qualifizierten Namen, interpretiert, als Trennzeichen für zusätzliche Typargumente.Otherwise, the commas that separate the parts of the assembly-qualified name are interpreted as delimiting additional type arguments. Z. B. eine Dictionary<TKey,TValue> von MyType aus mit Schlüsseln vom Typ "MeineAssembly.dll" String, könnte wie folgt angegeben werden:For example, a Dictionary<TKey,TValue> of MyType from MyAssembly.dll, with keys of type String, might be specified as follows:

Type.GetType("System.Collections.Generic.Dictionary`2[System.String,[MyType,MyAssembly]]")  

Hinweis

Ein Typ mit assemblyqualifikation kann in Klammern eingeschlossen werden, nur, wenn er in einer Liste der Parameter angezeigt wird.An assembly-qualified type can be enclosed in brackets only when it appears within a type parameter list. Die Regeln für die Suche von Assemblys für qualifizierte und unvollständigen Typen in Typparameterlisten sind identisch mit den Regeln für den qualifizierten und nicht qualifizierte nicht generische Typen.The rules for searching assemblies for qualified and unqualified types in type parameter lists are the same as the rules for qualified and unqualified nongeneric types.

Nullable-Typen sind ein besonderer Fall von generischen Typen.Nullable types are a special case of generic types. Beispielsweise eine auf NULL festlegbare Int32 wird dargestellt, durch die Zeichenfolge "System.Nullable'1[System.Int32]".For example, a nullable Int32 is represented by the string "System.Nullable`1[System.Int32]".

Hinweis

In c#, C++ und Visual Basic können Sie auch auf NULL festlegbare Typen, die mithilfe von Operatoren abrufen.In C#, C++, and Visual Basic you can also get nullable types using type operators. Z. B. die NULL-Werte zulassen Boolean Typ wird zurückgegeben, indem typeof(Nullable<bool>) in c# durch Nullable<Boolean>::typeid in C++, und durch GetType(Nullable(Of Boolean)) in Visual Basic.For example, the nullable Boolean type is returned by typeof(Nullable<bool>) in C#, by Nullable<Boolean>::typeid in C++, and by GetType(Nullable(Of Boolean)) in Visual Basic.

Die folgende Tabelle zeigt die Syntax, mit GetType für verschiedene Typen.The following table shows the syntax you use with GetType for various types.

Zum AbrufenTo Get VerwendungUse
Ein NULL-Werte zulässt Int32A nullable Int32 Type.GetType("System.Nullable`1[System.Int32]")
Ein nicht verwalteter Zeiger auf MyTypeAn unmanaged pointer to MyType Type.GetType("MyType*")
Ein nicht verwalteter Zeiger auf einen Zeiger auf MyTypeAn unmanaged pointer to a pointer to MyType Type.GetType("MyType**")
Ein verwalteter Zeiger oder Verweis auf MyTypeA managed pointer or reference to MyType Type.GetType("MyType&").Type.GetType("MyType&"). Beachten Sie, dass Verweise im Gegensatz zu Zeigern auf eine Ebene beschränkt sind.Note that unlike pointers, references are limited to one level.
Eine übergeordnete Klasse und eine geschachtelte Klasse.A parent class and a nested class Type.GetType("MyParentClass+MyNestedClass")
Ein eindimensionales Array mit einer unteren Grenze von 0A one-dimensional array with a lower bound of 0 Type.GetType("MyArray[]")
Ein eindimensionales Array mit einem Unbekannter unterer GrenzeA one-dimensional array with an unknown lower bound Type.GetType("MyArray[*]")
Ein Array mit n-dimensionalenAn n-dimensional array Ein Komma (,) innerhalb der Klammern eine insgesamt n-1 Mal.A comma (,) inside the brackets a total of n-1 times. Z. B. System.Object[,,] stellt ein dreidimensionales Object Array.For example, System.Object[,,] represents a three-dimensional Object array.
Ein zweidimensionales Array von ArraysA two-dimensional array's array Type.GetType("MyArray[][]")
Ein rechteckiges zweidimensionales Array mit Unbekannter unterer GrenzeA rectangular two-dimensional array with unknown lower bounds Type.GetType("MyArray[,]")
Ein generischer Typ mit einem TypargumentA generic type with one type argument Type.GetType("MyGenericType`1[MyType]")
Ein generischer Typ mit zwei TypargumenteA generic type with two type arguments Type.GetType("MyGenericType`2[MyType,AnotherType]")
Ein generischer Typ mit zwei Argumenten der Assembly qualifizierten TypnamenA generic type with two assembly-qualified type arguments Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")
Ein mit assemblyqualifikation, generischer Typ mit einem Argument für die Assembly qualifizierten TypnamenAn assembly-qualified generic type with an assembly-qualified type argument Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly")
Ein generischer Typ, dessen Typargument eines generischen Typs mit zwei Argumente des Typs ist.A generic type whose type argument is a generic type with two type arguments Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]")
Siehe auch

GetType(String, Boolean, Boolean) GetType(String, Boolean, Boolean) GetType(String, Boolean, Boolean) GetType(String, Boolean, Boolean)

Ruft den Type mit dem angegebenen Namen ab. Dabei wird angegeben, ob bei der Suche Groß- und Kleinschreibung berücksichtigt werden soll und ob eine Ausnahme ausgelöst werden soll, wenn der Typ nicht gefunden wird.Gets the Type with the specified name, specifying whether to throw an exception if the type is not found and whether to perform a case-sensitive search.

public:
 static Type ^ GetType(System::String ^ typeName, bool throwOnError, bool ignoreCase);
public static Type GetType (string typeName, bool throwOnError, bool ignoreCase);
static member GetType : string * bool * bool -> Type
Public Shared Function GetType (typeName As String, throwOnError As Boolean, ignoreCase As Boolean) As Type

Parameter

typeName
String String String String

Der durch die Assembly bezeichnete Name des abzurufenden Typs.The assembly-qualified name of the type to get. Siehe AssemblyQualifiedName.See AssemblyQualifiedName. Wenn sich der Typ in der aktuell ausgeführten Assembly oder in Mscorlib.dll befindet, ist eine Angabe des Typnamens einschließlich des qualifizierenden Namespace ausreichend.If the type is in the currently executing assembly or in Mscorlib.dll, it is sufficient to supply the type name qualified by its namespace.

throwOnError
Boolean Boolean Boolean Boolean

true, damit eine Ausnahme ausgelöst wird, wenn der Typ nicht gefunden werden kann, false, damit null zurückgegeben wird.true to throw an exception if the type cannot be found; false to return null. Die Angabe von false unterdrückt auch einige andere Ausnahmebedingungen, aber nicht alle.Specifying false also suppresses some other exception conditions, but not all of them. Informationen finden Sie im Abschnitt für Ausnahmen.See the Exceptions section.

ignoreCase
Boolean Boolean Boolean Boolean

true, um ohne Beachtung der Groß-/Kleinschreibung nach typeName zu suchen, false, um mit Beachtung der Groß-/Kleinschreibung nach typeName zu suchen.true to perform a case-insensitive search for typeName, false to perform a case-sensitive search for typeName.

Gibt zurück

Der Typ mit dem angegebenen Namen.The type with the specified name. Wenn der Typ nicht gefunden wird, gibt der throwOnError-Parameter an, ob null zurückgegeben oder eine Ausnahme ausgelöst wird.If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. In einigen Fällen wird unabhängig vom Wert von throwOnError eine Ausnahme ausgelöst.In some cases, an exception is thrown regardless of the value of throwOnError. Informationen finden Sie im Abschnitt für Ausnahmen.See the Exceptions section.

Ausnahmen

Ein Klasseninitialisierer wird aufgerufen und löst eine Ausnahme aus.A class initializer is invoked and throws an exception.

throwOnError ist true, und der Typ wurde nicht gefunden.throwOnError is true and the type is not found.

- oder --or- throwOnError ist true, und typeName enthält ungültige Zeichen, z. B. ein eingebettetes Tabstoppzeichen.throwOnError is true and typeName contains invalid characters, such as an embedded tab. - oder --or- throwOnError ist true, und typeName ist eine leere Zeichenfolge.throwOnError is true and typeName is an empty string.

- oder --or- throwOnError ist true, und typeName stellt einen Arraytyp mit einer ungültigen Größe dar.throwOnError is true and typeName represents an array type with an invalid size.

- oder --or- typeName stellt ein Array von TypedReference dar.typeName represents an array of TypedReference.

throwOnError ist true, und typeName enthält ungültige Syntax,throwOnError is true and typeName contains invalid syntax. beispielsweise "MyType[,*,]".For example, "MyType[,*,]".

- oder --or- typeName stellt einen generischen Typ dar, der einen Zeigertyp, einen ByRef-Typ oder Void als eines seiner Typargumente aufweist.typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments.

- oder --or- typeName stellt einen generischen Typ dar, der eine falsche Anzahl von Typargumenten aufweist.typeName represents a generic type that has an incorrect number of type arguments.

- oder --or- typeName stellt einen generischen Typ dar, und eines seiner Typargumente erfüllt nicht die Einschränkungen für den entsprechenden Typparameter.typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnError ist true, und die Assembly oder eine der zugehörigen Abhängigkeiten wurde nicht gefunden.throwOnError is true and the assembly or one of its dependencies was not found.

Die Assembly oder eine der zugehörigen Abhängigkeiten wurde gefunden, konnte aber nicht geladen werden.The assembly or one of its dependencies was found, but could not be loaded.

Die Assembly oder eine der zugehörigen Abhängigkeiten ist ungültig.The assembly or one of its dependencies is not valid.

- oder --or- Version 2.0 oder höher der Common Language Runtime ist derzeit geladen, und die Assembly wurde mit einer höheren Version kompiliert.Version 2.0 or later of the common language runtime is currently loaded, and the assembly was compiled with a later version.

Hinweise

Können Sie die GetType Methode zum Abrufen einer Type Objekt für einen Typ in einer anderen Assembly, wenn Sie die Assembly qualifizierten Namen kennen, die aus abgerufen werden können AssemblyQualifiedName.You can use the GetType method to obtain a Type object for a type in another assembly if you know its assembly-qualified name, which can be obtained from AssemblyQualifiedName. GetType führt zum Laden der Assembly im angegebenen typeName.GetType causes loading of the assembly specified in typeName. Sie können auch laden eine Assembly unter Verwendung der Assembly.Load -Methode und anschließend auf die Assembly.GetType oder Assembly.GetTypes -Methode zum Abrufen Type Objekte.You can also load an assembly using the Assembly.Load method, and then use the Assembly.GetType or Assembly.GetTypes method to get Type objects. Wenn ein Typ in einer Assembly mit dem Programm zur Kompilierzeit bekannt ist, ist es effizienter, verwenden Sie typeof in C# oder GetType -Operator in Visual Basic.If a type is in an assembly known to your program at compile time, it is more efficient to use typeof in C# or the GetType operator in Visual Basic.

GetType funktioniert nur für Assemblys, die vom Datenträger geladen.GetType only works on assemblies loaded from disk. Aufrufen GetType zum Nachschlagen eines Typs in einer dynamischen Assembly definiert, definiert der System.Reflection.Emit Services erhalten Sie möglicherweise inkonsistentes Verhalten.If you call GetType to look up a type defined in a dynamic assembly defined using the System.Reflection.Emit services, you might get inconsistent behavior. Das Verhalten abhängig, ob die dynamische Assembly persistent, d. h. ist, wird erstellt, mit der RunAndSave oder Save Zugriff auf die Modi für die System.Reflection.Emit.AssemblyBuilderAccess Enumeration.The behavior depends on whether the dynamic assembly is persistent, that is, created using the RunAndSave or Save access modes of the System.Reflection.Emit.AssemblyBuilderAccess enumeration. Wenn die dynamische Assembly persistent ist und bevor Sie auf den Datenträger geschrieben wurde GetType wird aufgerufen, das Ladeprogramm die gespeicherte Assembly sucht, auf dem Datenträger, lädt die Assembly und ruft den Typ aus dieser Assembly ab.If the dynamic assembly is persistent and has been written to disk before GetType is called, the loader finds the saved assembly on disk, loads that assembly, and retrieves the type from that assembly. Wenn die Assembly nicht gespeichert wurde, wenn auf dem Datenträger GetType aufgerufen wird, wird der Methodenrückgabe null.If the assembly has not been saved to disk when GetType is called, the method returns null. GetType flüchtige dynamische Assemblys versteht nicht; aus diesem Grund Aufrufen GetType zum Abrufen eines Typs in eine vorübergehende dynamische Assembly gibt null.GetType does not understand transient dynamic assemblies; therefore, calling GetType to retrieve a type in a transient dynamic assembly returns null.

Mit GetType für ein dynamisches Modul, abonnieren das AppDomain.AssemblyResolve Ereignis, und rufen GetType vor dem Speichern.To use GetType on a dynamic module, subscribe to the AppDomain.AssemblyResolve event and call GetType before saving. Andernfalls erhalten Sie zwei Kopien der Assembly im Speicher.Otherwise, you will get two copies of the assembly in memory.

Die throwOnError Parameter gibt an, was geschieht, wenn der Typ wurde nicht gefunden, und auch bestimmte andere Ausnahmebedingungen unterdrückt, wie im Abschnitt für Ausnahmen beschrieben.The throwOnError parameter specifies what happens when the type is not found, and also suppresses certain other exception conditions, as described in the Exceptions section. Einige Ausnahmen werden ausgelöst, unabhängig vom Wert der throwOnError.Some exceptions are thrown regardless of the value of throwOnError. Wenn der Typ befindet sich aber nicht geladen werden, z. B. eine TypeLoadException wird ausgelöst, selbst wenn throwOnError ist false.For example, if the type is found but cannot be loaded, a TypeLoadException is thrown even if throwOnError is false.

Die folgende Tabelle zeigt, welche Member einer Basisklasse von zurückgegeben werden die Get Methoden ein, wenn für einen Typ reflektieren.The following table shows what members of a base class are returned by the Get methods when reflecting on a type.

MemberartMember Type StatischStatic Nicht statischeNon-Static
KonstruktorConstructor NeinNo NeinNo
FeldField NeinNo Ja.Yes. Ein Feld ist immer nach Name und Signatur ausblenden.A field is always hide-by-name-and-signature.
eventEvent Nicht zutreffendNot applicable Die allgemeinen Typsystem ist, dass die Vererbung ist identisch mit der Methoden, die die Eigenschaft zu implementieren.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Reflektion behandelt Eigenschaften als nach Name und Signatur ausblenden.Reflection treats properties as hide-by-name-and-signature. Siehe Hinweis 2 weiter unten.See note 2 below.
MethodeMethod NeinNo Ja.Yes. Eine Methode (virtuelle und nicht virtuelle) möglich Ausblenden nach Namen oder nach Name und Signatur ausblenden.A method (both virtual and non-virtual) can be hide-by-name or hide-by-name-and-signature.
Geschachtelter TypNested Type NeinNo NeinNo
EigenschaftProperty Nicht zutreffendNot applicable Die allgemeinen Typsystem ist, dass die Vererbung ist identisch mit der Methoden, die die Eigenschaft zu implementieren.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Reflektion behandelt Eigenschaften als nach Name und Signatur ausblenden.Reflection treats properties as hide-by-name-and-signature. Siehe Hinweis 2 weiter unten.See note 2 below.
  1. Nach Name und Signatur ausblenden berücksichtigt, dass alle Teile der Signatur, die benutzerdefinierten Modifizierer, einschließlich Typen, Parametertypen, Sentinels enthält und nicht verwaltete Aufrufkonventionen zurückgeben.Hide-by-name-and-signature considers all of the parts of the signature, including custom modifiers, return types, parameter types, sentinels, and unmanaged calling conventions. Dies ist ein binärer Vergleich.This is a binary comparison.

  2. Für die Reflektion sind die Eigenschaften und Ereignisse nach Name und Signatur ausblenden.For reflection, properties and events are hide-by-name-and-signature. Wenn Sie eine Eigenschaft mit dem ein Get und Set-Accessor in der Basisklasse haben, aber die abgeleitete Klasse nur einen Get-Accessor hat, die Eigenschaft der abgeleiteten Klasse blendet die Basisklasseneigenschaft aus, und nicht werden auf den Setter in der Basisklasse zugreifen.If you have a property with both a get and a set accessor in the base class, but the derived class has only a get accessor, the derived class property hides the base class property, and you will not be able to access the setter on the base class.

  3. Benutzerdefinierte Attribute sind nicht Teil des allgemeinen Typsystems.Custom attributes are not part of the common type system.

Arrays oder COM-Typen werden nicht für durchsucht, es sei denn, sie bereits in der Tabelle der verfügbaren Klassen geladen wurden.Arrays or COM types are not searched for unless they have already been loaded into the table of available classes.

typeName Der Typname kann durch den Namespace oder eine Assembly qualifizierten Namen, der Angabe eines Assemblynamens enthält qualifiziert werden.typeName can be the type name qualified by its namespace or an assembly-qualified name that includes an assembly name specification. Siehe AssemblyQualifiedName.See AssemblyQualifiedName.

Wenn typeName umfasst den Namespace, jedoch nicht den Assemblynamen eingeben, sucht diese Methode nur die Assembly des aufrufenden Objekts und die Datei "mscorlib.dll", in dieser Reihenfolge.If typeName includes the namespace but not the assembly name, this method searches only the calling object's assembly and Mscorlib.dll, in that order. Wenn TypeName vollqualifizierten mit dem Assemblynamen für teilweise oder vollständig ist, sucht diese Methode, in der angegebenen Assembly.If typeName is fully qualified with the partial or complete assembly name, this method searches in the specified assembly. Wenn die Assembly einen starken Namen aufweist, muss ein vollständigen Assemblynamen.If the assembly has a strong name, a complete assembly name is required.

Die AssemblyQualifiedName Eigenschaft gibt einen vollqualifizierten Typnamen einschließlich geschachtelte Typen, Assemblyname und Typargumente zurück.The AssemblyQualifiedName property returns a fully qualified type name including nested types, the assembly name, and type arguments. Alle Compiler, die die common Language Runtime unterstützen, werden der einfache Name einer geschachtelten Klasse geben an, und Reflektion erstellt einen ergänzten Namen in Übereinstimmung mit den folgenden Konventionen abgefragt.All compilers that support the common language runtime will emit the simple name of a nested class, and reflection constructs a mangled name when queried, in accordance with the following conventions.

Hinweis

In .NET Framework, Version 2.0 Prozessorarchitektur Assemblyidentität hinzugefügt wird, und kann als Teil der Assembly-Zeichenfolgen angegeben werden.In the .NET Framework version 2.0, processor architecture is added to assembly identity, and can be specified as part of assembly name strings. Z. B. "ProcessorArchitecture = Msil".For example, "ProcessorArchitecture=msil". Es ist jedoch nicht enthalten in der Zeichenfolge, die vom der AssemblyQualifiedName Eigenschaft aus Kompatibilitätsgründen.However, it is not included in the string returned by the AssemblyQualifiedName property, for compatibility reasons. Außerdem können Sie Typen laden, indem Sie erstellen eine AssemblyName -Objekt und die Übergabe an eine entsprechende Überladung von der Load Methode.You can also load types by creating an AssemblyName object and passing it to an appropriate overload of the Load method. Anschließend können Sie die Assembly.GetType -Methode zum Laden von Typen aus der Assembly.You can then use the Assembly.GetType method to load types from the assembly. Siehe auch AssemblyName.ProcessorArchitecture.See also AssemblyName.ProcessorArchitecture.

DelimiterDelimiter BedeutungMeaning
Umgekehrter Schrägstrich (\)Backslash (\) Escape-Zeichen.Escape character.
Graviszeichen (')Backtick (`) Steht vor einer oder mehreren Ziffern, die die Anzahl von Typparametern, die am Ende des Namens eines generischen Typs darstellt.Precedes one or more digits representing the number of type parameters, located at the end of the name of a generic type.
Eckige Klammern ([])Brackets ([]) Schließen Sie eine generischen Typargumentliste für einen konstruierten generischen Typ; Schließen Sie in einer Liste der Typargumente eine Assembly qualifizierten Typnamen ein.Enclose a generic type argument list, for a constructed generic type; within a type argument list, enclose an assembly-qualified type.
Komma (,)Comma (,) Der Name der Assembly wird vorangestellt.Precedes the Assembly name.
Punkt (.)Period (.) Bezeichnet die Namespacebezeichner.Denotes namespace identifiers.
Pluszeichen (+)Plus sign (+) Steht vor einer geschachtelten Klasse.Precedes a nested class.

Der vollqualifizierte Name für eine Klasse kann beispielsweise wie folgt aussehen:For example, the fully qualified name for a class might look like this:

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly  

Wenn der Namespace z.B. TopNamespace.Sub, würde die Zeichenfolge auf das Pluszeichen (+), ein Escapezeichen vorangestellt haben (\) zu verhindern, dass es als geschachteltes Trennzeichen interpretiert wird.If the namespace were TopNamespace.Sub+Namespace, then the string would have to precede the plus sign (+) with an escape character (\) to prevent it from being interpreted as a nesting separator. Reflektion gibt diese Zeichenfolge wie folgt aus:Reflection emits this string as follows:

TopNamespace.Sub\+Namespace.ContainingClass+NestedClass,MyAssembly  

Ein "++" wird "\+\+", und ein "\"wird"\\".A "++" becomes "\+\+", and a "\" becomes "\\".

Dieser qualifizierte Name persistent gespeichert werden kann, und später verwendet, um das Laden der Type.This qualified name can be persisted and later used to load the Type. Suchen und Laden eine Type, verwenden Sie GetType entweder mit dem Typ oder einen Namen geben nur mit dem Namen der Assembly qualifizierten Typ.To search for and load a Type, use GetType either with the type name only or with the assembly qualified type name. GetType mit dem Namen nur sucht die Type in der Assembly des Aufrufers, und klicken Sie dann in der System-Assembly.GetType with the type name only will look for the Type in the caller's assembly and then in the System assembly. GetType mit der Assembly qualifizierten Typnamen sucht die Type in jeder Assembly.GetType with the assembly qualified type name will look for the Type in any assembly.

Namen können nachfolgende Zeichen enthalten, zusätzliche Informationen über den Typ, z. B., ob der Typ ein Verweistyp, ein Zeigertyp oder einen Arraytyp ist.Type names may include trailing characters that denote additional information about the type, such as whether the type is a reference type, a pointer type or an array type. Verwenden Sie zum Abrufen der Typname ohne diese nachfolgenden Zeichen t.GetElementType().ToString(), wobei t ist der Typ.To retrieve the type name without these trailing characters, use t.GetElementType().ToString(), where t is the type.

Leerzeichen sind in allen Komponenten von Typnamen mit Ausnahme der Assemblyname relevant.Spaces are relevant in all type name components except the assembly name. Der Assemblyname Leerzeichen vor dem Trennzeichen ',' relevant, aber Leerzeichen nach dem Trennzeichen ',' werden ignoriert.In the assembly name, spaces before the ',' separator are relevant, but spaces after the ',' separator are ignored.

Der Name eines generischen Typs endet mit einem Graviszeichen (`) gefolgt von Ziffern, die die Anzahl der Argumente des generischen Typs darstellt.The name of a generic type ends with a backtick (`) followed by digits representing the number of generic type arguments. Dieser Name-mangling dient zum Zulassen von Compilern zur Unterstützung von generischer Typen mit demselben Namen aber mit einer unterschiedlichen Anzahl von Typparametern, im gleichen Gültigkeitsbereich auftritt.The purpose of this name mangling is to allow compilers to support generic types with the same name but with different numbers of type parameters, occurring in the same scope. Reflektion gibt z. B. die ergänzten Namen Tuple1andTupel2 die generischen Methoden Tuple(Of T) und Tuple(Of T0, T1) in Visual Basic oder Tuple<T> und Tupel\<T0, T1> in Visual c#.For example, reflection returns the mangled names Tuple1andTuple2 from the generic methods Tuple(Of T) and Tuple(Of T0, T1) in Visual Basic, or Tuple<T> and Tuple\<T0, T1> in Visual C#.

Bei generischen Typen wird die Typargumentliste in Klammern gesetzt, und die Typargumente durch Kommas getrennt.For generic types, the type argument list is enclosed in brackets, and the type arguments are separated by commas. Zum Beispiel eine generische Dictionary<TKey,TValue> verfügt über zwei Typparameter.For example, a generic Dictionary<TKey,TValue> has two type parameters. Ein Dictionary<TKey,TValue> von MyType mit Schlüsseln vom Typ String kann wie folgt dargestellt werden:A Dictionary<TKey,TValue> of MyType with keys of type String might be represented as follows:

System.Collections.Generic.Dictionary`2[System.String,MyType]  

Um eine Assembly qualifizierten Typnamen in einer Liste der Typargumente angeben, schließen Sie die Assembly qualifizierten Typnamen in eckige Klammern ein.To specify an assembly-qualified type within a type argument list, enclose the assembly-qualified type within brackets. Andernfalls werden die Kommas, die trennen die Teile der Assembly qualifizierten Namen, interpretiert, als Trennzeichen für zusätzliche Typargumente.Otherwise, the commas that separate the parts of the assembly-qualified name are interpreted as delimiting additional type arguments. Z. B. eine Dictionary<TKey,TValue> von MyType aus mit Schlüsseln vom Typ "MeineAssembly.dll" String, könnte wie folgt angegeben werden:For example, a Dictionary<TKey,TValue> of MyType from MyAssembly.dll, with keys of type String, might be specified as follows:

Type.GetType("System.Collections.Generic.Dictionary`2[System.String,[MyType,MyAssembly]]")  

Hinweis

Ein Typ mit assemblyqualifikation kann in Klammern eingeschlossen werden, nur, wenn er in einer Liste der Parameter angezeigt wird.An assembly-qualified type can be enclosed in brackets only when it appears within a type parameter list. Die Regeln für die Suche von Assemblys für qualifizierte und unvollständigen Typen in Typparameterlisten sind identisch mit den Regeln für den qualifizierten und nicht qualifizierte nicht generische Typen.The rules for searching assemblies for qualified and unqualified types in type parameter lists are the same as the rules for qualified and unqualified nongeneric types.

Nullable-Typen sind ein besonderer Fall von generischen Typen.Nullable types are a special case of generic types. Beispielsweise eine auf NULL festlegbare Int32 wird dargestellt, durch die Zeichenfolge "System.Nullable'1[System.Int32]".For example, a nullable Int32 is represented by the string "System.Nullable`1[System.Int32]".

Hinweis

In c#, C++ und Visual Basic können Sie auch auf NULL festlegbare Typen, die mithilfe von Operatoren abrufen.In C#, C++, and Visual Basic you can also get nullable types using type operators. Z. B. die NULL-Werte zulassen Boolean Typ wird zurückgegeben, indem typeof(Nullable<bool>) in c# durch Nullable<Boolean>::typeid in C++, und durch GetType(Nullable(Of Boolean)) in Visual Basic.For example, the nullable Boolean type is returned by typeof(Nullable<bool>) in C#, by Nullable<Boolean>::typeid in C++, and by GetType(Nullable(Of Boolean)) in Visual Basic.

Die folgende Tabelle zeigt die Syntax, mit GetType für verschiedene Typen.The following table shows the syntax you use with GetType for various types.

Zum AbrufenTo Get VerwendungUse
Ein NULL-Werte zulässt Int32A nullable Int32 Type.GetType("System.Nullable`1[System.Int32]")
Ein nicht verwalteter Zeiger auf MyTypeAn unmanaged pointer to MyType Type.GetType("MyType*")
Ein nicht verwalteter Zeiger auf einen Zeiger auf MyTypeAn unmanaged pointer to a pointer to MyType Type.GetType("MyType**")
Ein verwalteter Zeiger oder Verweis auf MyTypeA managed pointer or reference to MyType Type.GetType("MyType&").Type.GetType("MyType&"). Beachten Sie, dass Verweise im Gegensatz zu Zeigern auf eine Ebene beschränkt sind.Note that unlike pointers, references are limited to one level.
Eine übergeordnete Klasse und eine geschachtelte Klasse.A parent class and a nested class Type.GetType("MyParentClass+MyNestedClass")
Ein eindimensionales Array mit einer unteren Grenze von 0A one-dimensional array with a lower bound of 0 Type.GetType("MyArray[]")
Ein eindimensionales Array mit einem Unbekannter unterer GrenzeA one-dimensional array with an unknown lower bound Type.GetType("MyArray[*]")
Ein Array mit n-dimensionalenAn n-dimensional array Ein Komma (,) innerhalb der Klammern eine insgesamt n-1 Mal.A comma (,) inside the brackets a total of n-1 times. Z. B. System.Object[,,] stellt ein dreidimensionales Object Array.For example, System.Object[,,] represents a three-dimensional Object array.
Ein zweidimensionales Array von ArraysA two-dimensional array's array Type.GetType("MyArray[][]")
Ein rechteckiges zweidimensionales Array mit Unbekannter unterer GrenzeA rectangular two-dimensional array with unknown lower bounds Type.GetType("MyArray[,]")
Ein generischer Typ mit einem TypargumentA generic type with one type argument Type.GetType("MyGenericType`1[MyType]")
Ein generischer Typ mit zwei TypargumenteA generic type with two type arguments Type.GetType("MyGenericType`2[MyType,AnotherType]")
Ein generischer Typ mit zwei Argumenten der Assembly qualifizierten TypnamenA generic type with two assembly-qualified type arguments Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")
Ein mit assemblyqualifikation, generischer Typ mit einem Argument für die Assembly qualifizierten TypnamenAn assembly-qualified generic type with an assembly-qualified type argument Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly")
Ein generischer Typ, dessen Typargument eines generischen Typs mit zwei Argumente des Typs ist.A generic type whose type argument is a generic type with two type arguments Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]")
Siehe auch

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>)

Ruft den Typ mit dem angegebenen Namen ab und stellt optional benutzerdefinierte Methoden bereit, um die Assembly und den Typ aufzulösen.Gets the type with the specified name, optionally providing custom methods to resolve the assembly and the type.

public:
 static Type ^ GetType(System::String ^ typeName, Func<System::Reflection::AssemblyName ^, System::Reflection::Assembly ^> ^ assemblyResolver, Func<System::Reflection::Assembly ^, System::String ^, bool, Type ^> ^ typeResolver);
public static Type GetType (string typeName, Func<System.Reflection.AssemblyName,System.Reflection.Assembly> assemblyResolver, Func<System.Reflection.Assembly,string,bool,Type> typeResolver);
static member GetType : string * Func<System.Reflection.AssemblyName, System.Reflection.Assembly> * Func<System.Reflection.Assembly, string, bool, Type> -> Type
Public Shared Function GetType (typeName As String, assemblyResolver As Func(Of AssemblyName, Assembly), typeResolver As Func(Of Assembly, String, Boolean, Type)) As Type

Parameter

typeName
String String String String

Der Name des abzurufenden Typs.The name of the type to get. Wenn der typeResolver-Parameter bereitgestellt wird, kann der Typname jede Zeichenfolge sein, die vom typeResolver aufgelöst werden kann.If the typeResolver parameter is provided, the type name can be any string that typeResolver is capable of resolving. Wenn der assemblyResolver-Parameter bereitgestellt wird oder wenn die Standardtypauflösung verwendet wird, muss der typeName ein durch die Assembly qualifizierter Name (siehe AssemblyQualifiedName) sein, es sei denn, der Typ befindet sich in der gerade ausgeführten Assembly oder in der Datei Mscorlib.dll. In diesem Fall genügt es, den von seinem Namespace qualifizierten Typnamen anzugeben.If the assemblyResolver parameter is provided or if standard type resolution is used, typeName must be an assembly-qualified name (see AssemblyQualifiedName), unless the type is in the currently executing assembly or in Mscorlib.dll, in which case it is sufficient to supply the type name qualified by its namespace.

assemblyResolver
Func<AssemblyName,Assembly>

Eine Methode, die die Assembly sucht und zurückgibt, die in typeName angegeben wird.A method that locates and returns the assembly that is specified in typeName. Der Assemblyname wird an den assemblyResolver als ein AssemblyName-Objekt übergeben.The assembly name is passed to assemblyResolver as an AssemblyName object. Wenn typeName keinen Namen einer Assembly enthält, wird der assemblyResolver nicht aufgerufen.If typeName does not contain the name of an assembly, assemblyResolver is not called. Wenn der assemblyResolver nicht angegeben wird, wird die Standardassemblyauflösung ausgeführt.If assemblyResolver is not supplied, standard assembly resolution is performed.

Vorsicht Übergeben Sie keine Methoden von unbekannten oder nicht vertrauenswürdigen Aufrufern.Caution Do not pass methods from unknown or untrusted callers. Andernfalls könnten Berechtigungen für bösartigen Code erweitert werden.Doing so could result in elevation of privilege for malicious code. Verwenden Sie nur Methoden, die Sie bereitstellen oder mit denen Sie vertraut sind.Use only methods that you provide or that you are familiar with.

typeResolver
Func<Assembly,String,Boolean,Type>

Eine Methode, die den Typ sucht und zurückgibt, der von typeName von der Assembly angegeben wird, die vom assemblyResolver oder von der Standardassemblyauflösung zurückgegeben wird.A method that locates and returns the type that is specified by typeName from the assembly that is returned by assemblyResolver or by standard assembly resolution. Wenn keine Assembly bereitgestellt wird, kann die typeResolver-Methode eine Assembly zur Verfügung stellen.If no assembly is provided, the typeResolver method can provide one. Die Methode nimmt auch einen Parameter an, der angibt, ob bei der Suche die Groß- und Kleinschreibung berücksichtigt werden soll; an diesen Parameter wird false übergeben.The method also takes a parameter that specifies whether to perform a case-insensitive search; false is passed to that parameter.

Vorsicht Übergeben Sie keine Methoden von unbekannten oder nicht vertrauenswürdigen Aufrufern.Caution Do not pass methods from unknown or untrusted callers.

Gibt zurück

Der Typ mit dem angegebenen Namen oder null, wenn der Typ nicht gefunden wird.The type with the specified name, or null if the type is not found.

Ausnahmen

Ein Klasseninitialisierer wird aufgerufen und löst eine Ausnahme aus.A class initializer is invoked and throws an exception.

Ein Fehler tritt auf, wenn typeName in einen Typnamen und einen Assemblynamen zerlegt wird (wenn z. B. der einfache Typname ein Sonderzeichen ohne Escapezeichen enthält).An error occurs when typeName is parsed into a type name and an assembly name (for example, when the simple type name includes an unescaped special character).

- oder --or- typeName stellt einen generischen Typ dar, der einen Zeigertyp, einen ByRef-Typ oder Void als eines seiner Typargumente aufweist.typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments.

- oder --or- typeName stellt einen generischen Typ dar, der eine falsche Anzahl von Typargumenten aufweist.typeName represents a generic type that has an incorrect number of type arguments.

- oder --or- typeName stellt einen generischen Typ dar, und eines seiner Typargumente erfüllt nicht die Einschränkungen für den entsprechenden Typparameter.typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

typeName stellt ein Array von TypedReference dar.typeName represents an array of TypedReference.

Die Assembly oder eine der zugehörigen Abhängigkeiten wurde gefunden, konnte aber nicht geladen werden.The assembly or one of its dependencies was found, but could not be loaded.

- oder --or- typeName enthält einen ungültigen Assemblynamen.typeName contains an invalid assembly name.

- oder --or- typeName ist ein gültiger Assemblyname ohne Typnamen.typeName is a valid assembly name without a type name.

Die Assembly oder eine der zugehörigen Abhängigkeiten ist ungültig.The assembly or one of its dependencies is not valid.

- oder --or- Die Assembly wurde mit einer Version der Common Language Runtime kompiliert, die höher ist als die Version, die derzeit geladen ist.The assembly was compiled with a later version of the common language runtime than the version that is currently loaded.

Hinweise

Verwendungsszenarien für diese Methode und die Details zu den assemblyResolver und typeResolver Parameter finden Sie in der GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) methodenüberladung.Usage scenarios for this method and details about the assemblyResolver and typeResolver parameters can be found in the GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) method overload.

Hinweis

Wenn typeName kann nicht gefunden werden, den Aufruf der GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) Methodenrückgabe null.If typeName cannot be found, the call to the GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) method returns null. Es löst keine Ausnahme aus.It does not throw an exception. Um zu steuern, ob eine Ausnahme wird ausgelöst, rufen Sie eine Überladung von der GetType Methode mit einem throwOnError Parameter.To control whether an exception is thrown, call an overload of the GetType method that has a throwOnError parameter.

Aufrufen der Überladung dieser Methode entspricht dem Aufrufen der GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) -methodenüberladung, und geben false für die throwOnError und ignoreCase Parameter.Calling this method overload is the same as calling the GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) method overload and specifying false for the throwOnError and ignoreCase parameters.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean)

Ruft den Typ mit dem angegebenen Namen ab. Dabei wird angegeben, ob eine Ausnahme ausgelöst werden soll, wenn der Typ nicht gefunden wird, und optional werden benutzerdefinierte Methoden bereitgestellt, um die Assembly und den Typ aufzulösen.Gets the type with the specified name, specifying whether to throw an exception if the type is not found, and optionally providing custom methods to resolve the assembly and the type.

public:
 static Type ^ GetType(System::String ^ typeName, Func<System::Reflection::AssemblyName ^, System::Reflection::Assembly ^> ^ assemblyResolver, Func<System::Reflection::Assembly ^, System::String ^, bool, Type ^> ^ typeResolver, bool throwOnError);
public static Type GetType (string typeName, Func<System.Reflection.AssemblyName,System.Reflection.Assembly> assemblyResolver, Func<System.Reflection.Assembly,string,bool,Type> typeResolver, bool throwOnError);
static member GetType : string * Func<System.Reflection.AssemblyName, System.Reflection.Assembly> * Func<System.Reflection.Assembly, string, bool, Type> * bool -> Type
Public Shared Function GetType (typeName As String, assemblyResolver As Func(Of AssemblyName, Assembly), typeResolver As Func(Of Assembly, String, Boolean, Type), throwOnError As Boolean) As Type

Parameter

typeName
String String String String

Der Name des abzurufenden Typs.The name of the type to get. Wenn der typeResolver-Parameter bereitgestellt wird, kann der Typname jede Zeichenfolge sein, die vom typeResolver aufgelöst werden kann.If the typeResolver parameter is provided, the type name can be any string that typeResolver is capable of resolving. Wenn der assemblyResolver-Parameter bereitgestellt wird oder wenn die Standardtypauflösung verwendet wird, muss der typeName ein durch die Assembly qualifizierter Name (siehe AssemblyQualifiedName) sein, es sei denn, der Typ befindet sich in der gerade ausgeführten Assembly oder in der Datei Mscorlib.dll. In diesem Fall genügt es, den von seinem Namespace qualifizierten Typnamen anzugeben.If the assemblyResolver parameter is provided or if standard type resolution is used, typeName must be an assembly-qualified name (see AssemblyQualifiedName), unless the type is in the currently executing assembly or in Mscorlib.dll, in which case it is sufficient to supply the type name qualified by its namespace.

assemblyResolver
Func<AssemblyName,Assembly>

Eine Methode, die die Assembly sucht und zurückgibt, die in typeName angegeben wird.A method that locates and returns the assembly that is specified in typeName. Der Assemblyname wird an den assemblyResolver als ein AssemblyName-Objekt übergeben.The assembly name is passed to assemblyResolver as an AssemblyName object. Wenn typeName keinen Namen einer Assembly enthält, wird der assemblyResolver nicht aufgerufen.If typeName does not contain the name of an assembly, assemblyResolver is not called. Wenn der assemblyResolver nicht angegeben wird, wird die Standardassemblyauflösung ausgeführt.If assemblyResolver is not supplied, standard assembly resolution is performed.

Vorsicht Übergeben Sie keine Methoden von unbekannten oder nicht vertrauenswürdigen Aufrufern.Caution Do not pass methods from unknown or untrusted callers. Andernfalls könnten Berechtigungen für bösartigen Code erweitert werden.Doing so could result in elevation of privilege for malicious code. Verwenden Sie nur Methoden, die Sie bereitstellen oder mit denen Sie vertraut sind.Use only methods that you provide or that you are familiar with.

typeResolver
Func<Assembly,String,Boolean,Type>

Eine Methode, die den Typ sucht und zurückgibt, der von typeName von der Assembly angegeben wird, die vom assemblyResolver oder von der Standardassemblyauflösung zurückgegeben wird.A method that locates and returns the type that is specified by typeName from the assembly that is returned by assemblyResolver or by standard assembly resolution. Wenn keine Assembly bereitgestellt wird, kann die Methode eine Assembly zur Verfügung stellen.If no assembly is provided, the method can provide one. Die Methode nimmt auch einen Parameter an, der angibt, ob bei der Suche die Groß- und Kleinschreibung berücksichtigt werden soll; an diesen Parameter wird false übergeben.The method also takes a parameter that specifies whether to perform a case-insensitive search; false is passed to that parameter.

Vorsicht Übergeben Sie keine Methoden von unbekannten oder nicht vertrauenswürdigen Aufrufern.Caution Do not pass methods from unknown or untrusted callers.

throwOnError
Boolean Boolean Boolean Boolean

true, damit eine Ausnahme ausgelöst wird, wenn der Typ nicht gefunden werden kann, false, damit null zurückgegeben wird.true to throw an exception if the type cannot be found; false to return null. Die Angabe von false unterdrückt auch einige andere Ausnahmebedingungen, aber nicht alle.Specifying false also suppresses some other exception conditions, but not all of them. Informationen finden Sie im Abschnitt für Ausnahmen.See the Exceptions section.

Gibt zurück

Der Typ mit dem angegebenen Namen.The type with the specified name. Wenn der Typ nicht gefunden wird, gibt der throwOnError-Parameter an, ob null zurückgegeben oder eine Ausnahme ausgelöst wird.If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. In einigen Fällen wird unabhängig vom Wert von throwOnError eine Ausnahme ausgelöst.In some cases, an exception is thrown regardless of the value of throwOnError. Informationen finden Sie im Abschnitt für Ausnahmen.See the Exceptions section.

Ausnahmen

Ein Klasseninitialisierer wird aufgerufen und löst eine Ausnahme aus.A class initializer is invoked and throws an exception.

throwOnError ist true, und der Typ wurde nicht gefunden.throwOnError is true and the type is not found.

- oder --or- throwOnError ist true, und typeName enthält ungültige Zeichen, z. B. ein eingebettetes Tabstoppzeichen.throwOnError is true and typeName contains invalid characters, such as an embedded tab. - oder --or- throwOnError ist true, und typeName ist eine leere Zeichenfolge.throwOnError is true and typeName is an empty string.

- oder --or- throwOnError ist true, und typeName stellt einen Arraytyp mit einer ungültigen Größe dar.throwOnError is true and typeName represents an array type with an invalid size.

- oder --or- typeName stellt ein Array von TypedReference dar.typeName represents an array of TypedReference.

Ein Fehler tritt auf, wenn typeName in einen Typnamen und einen Assemblynamen zerlegt wird (wenn z. B. der einfache Typname ein Sonderzeichen ohne Escapezeichen enthält).An error occurs when typeName is parsed into a type name and an assembly name (for example, when the simple type name includes an unescaped special character).

- oder --or- throwOnError ist true, und typeName enthält ungültige Syntax (z. B. "MyType[,*,]").throwOnError is true and typeName contains invalid syntax (for example, "MyType[,*,]").

- oder --or- typeName stellt einen generischen Typ dar, der einen Zeigertyp, einen ByRef-Typ oder Void als eines seiner Typargumente aufweist.typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments.

- oder --or- typeName stellt einen generischen Typ dar, der eine falsche Anzahl von Typargumenten aufweist.typeName represents a generic type that has an incorrect number of type arguments.

- oder --or- typeName stellt einen generischen Typ dar, und eines seiner Typargumente erfüllt nicht die Einschränkungen für den entsprechenden Typparameter.typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnError ist true, und die Assembly oder eine der zugehörigen Abhängigkeiten wurde nicht gefunden.throwOnError is true and the assembly or one of its dependencies was not found.

- oder --or- typeName enthält einen ungültigen Assemblynamen.typeName contains an invalid assembly name.

- oder --or- typeName ist ein gültiger Assemblyname ohne Typnamen.typeName is a valid assembly name without a type name.

Die Assembly oder eine der zugehörigen Abhängigkeiten wurde gefunden, konnte aber nicht geladen werden.The assembly or one of its dependencies was found, but could not be loaded.

Die Assembly oder eine der zugehörigen Abhängigkeiten ist ungültig.The assembly or one of its dependencies is not valid.

- oder --or- Die Assembly wurde mit einer Version der Common Language Runtime kompiliert, die höher ist als die Version, die derzeit geladen ist.The assembly was compiled with a later version of the common language runtime than the version that is currently loaded.

Hinweise

Verwendungsszenarien für diese Methode und die Details zu den assemblyResolver und typeResolver Parameter finden Sie in der GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) methodenüberladung.Usage scenarios for this method and details about the assemblyResolver and typeResolver parameters can be found in the GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) method overload.

Aufrufen der Überladung dieser Methode entspricht dem Aufrufen der GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) -methodenüberladung, und geben false für die ignoreCase Parameter.Calling this method overload is the same as calling the GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) method overload and specifying false for the ignoreCase parameter.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean)

Ruft den Typ mit dem angegebenen Namen ab. Dabei wird angegeben, ob bei der Suche die Groß-/Kleinschreibung beachtet werden soll und ob eine Ausnahme ausgelöst werden soll, wenn der Typ nicht gefunden wird, und optional werden benutzerdefinierte Methoden bereitgestellt, um die Assembly und den Typ aufzulösen.Gets the type with the specified name, specifying whether to perform a case-sensitive search and whether to throw an exception if the type is not found, and optionally providing custom methods to resolve the assembly and the type.

public:
 static Type ^ GetType(System::String ^ typeName, Func<System::Reflection::AssemblyName ^, System::Reflection::Assembly ^> ^ assemblyResolver, Func<System::Reflection::Assembly ^, System::String ^, bool, Type ^> ^ typeResolver, bool throwOnError, bool ignoreCase);
public static Type GetType (string typeName, Func<System.Reflection.AssemblyName,System.Reflection.Assembly> assemblyResolver, Func<System.Reflection.Assembly,string,bool,Type> typeResolver, bool throwOnError, bool ignoreCase);
static member GetType : string * Func<System.Reflection.AssemblyName, System.Reflection.Assembly> * Func<System.Reflection.Assembly, string, bool, Type> * bool * bool -> Type
Public Shared Function GetType (typeName As String, assemblyResolver As Func(Of AssemblyName, Assembly), typeResolver As Func(Of Assembly, String, Boolean, Type), throwOnError As Boolean, ignoreCase As Boolean) As Type

Parameter

typeName
String String String String

Der Name des abzurufenden Typs.The name of the type to get. Wenn der typeResolver-Parameter bereitgestellt wird, kann der Typname jede Zeichenfolge sein, die vom typeResolver aufgelöst werden kann.If the typeResolver parameter is provided, the type name can be any string that typeResolver is capable of resolving. Wenn der assemblyResolver-Parameter bereitgestellt wird oder wenn die Standardtypauflösung verwendet wird, muss der typeName ein durch die Assembly qualifizierter Name (siehe AssemblyQualifiedName) sein, es sei denn, der Typ befindet sich in der gerade ausgeführten Assembly oder in der Datei Mscorlib.dll. In diesem Fall genügt es, den von seinem Namespace qualifizierten Typnamen anzugeben.If the assemblyResolver parameter is provided or if standard type resolution is used, typeName must be an assembly-qualified name (see AssemblyQualifiedName), unless the type is in the currently executing assembly or in Mscorlib.dll, in which case it is sufficient to supply the type name qualified by its namespace.

assemblyResolver
Func<AssemblyName,Assembly>

Eine Methode, die die Assembly sucht und zurückgibt, die in typeName angegeben wird.A method that locates and returns the assembly that is specified in typeName. Der Assemblyname wird an den assemblyResolver als ein AssemblyName-Objekt übergeben.The assembly name is passed to assemblyResolver as an AssemblyName object. Wenn typeName keinen Namen einer Assembly enthält, wird der assemblyResolver nicht aufgerufen.If typeName does not contain the name of an assembly, assemblyResolver is not called. Wenn der assemblyResolver nicht angegeben wird, wird die Standardassemblyauflösung ausgeführt.If assemblyResolver is not supplied, standard assembly resolution is performed.

Vorsicht Übergeben Sie keine Methoden von unbekannten oder nicht vertrauenswürdigen Aufrufern.Caution Do not pass methods from unknown or untrusted callers. Andernfalls könnten Berechtigungen für bösartigen Code erweitert werden.Doing so could result in elevation of privilege for malicious code. Verwenden Sie nur Methoden, die Sie bereitstellen oder mit denen Sie vertraut sind.Use only methods that you provide or that you are familiar with.

typeResolver
Func<Assembly,String,Boolean,Type>

Eine Methode, die den Typ sucht und zurückgibt, der von typeName von der Assembly angegeben wird, die vom assemblyResolver oder von der Standardassemblyauflösung zurückgegeben wird.A method that locates and returns the type that is specified by typeName from the assembly that is returned by assemblyResolver or by standard assembly resolution. Wenn keine Assembly bereitgestellt wird, kann die Methode eine Assembly zur Verfügung stellen.If no assembly is provided, the method can provide one. Die Methode nimmt auch einen Parameter an, der angibt, ob bei der Suche die Groß-/Kleinschreibung beachtet werden soll; an diesen Parameter wird der Wert von ignoreCase übergeben.The method also takes a parameter that specifies whether to perform a case-insensitive search; the value of ignoreCase is passed to that parameter.

Vorsicht Übergeben Sie keine Methoden von unbekannten oder nicht vertrauenswürdigen Aufrufern.Caution Do not pass methods from unknown or untrusted callers.

throwOnError
Boolean Boolean Boolean Boolean

true, damit eine Ausnahme ausgelöst wird, wenn der Typ nicht gefunden werden kann, false, damit null zurückgegeben wird.true to throw an exception if the type cannot be found; false to return null. Die Angabe von false unterdrückt auch einige andere Ausnahmebedingungen, aber nicht alle.Specifying false also suppresses some other exception conditions, but not all of them. Informationen finden Sie im Abschnitt für Ausnahmen.See the Exceptions section.

ignoreCase
Boolean Boolean Boolean Boolean

true, um ohne Beachtung der Groß-/Kleinschreibung nach typeName zu suchen, false, um mit Beachtung der Groß-/Kleinschreibung nach typeName zu suchen.true to perform a case-insensitive search for typeName, false to perform a case-sensitive search for typeName.

Gibt zurück

Der Typ mit dem angegebenen Namen.The type with the specified name. Wenn der Typ nicht gefunden wird, gibt der throwOnError-Parameter an, ob null zurückgegeben oder eine Ausnahme ausgelöst wird.If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. In einigen Fällen wird unabhängig vom Wert von throwOnError eine Ausnahme ausgelöst.In some cases, an exception is thrown regardless of the value of throwOnError. Informationen finden Sie im Abschnitt für Ausnahmen.See the Exceptions section.

Ausnahmen

Ein Klasseninitialisierer wird aufgerufen und löst eine Ausnahme aus.A class initializer is invoked and throws an exception.

throwOnError ist true, und der Typ wurde nicht gefunden.throwOnError is true and the type is not found.

- oder --or- throwOnError ist true, und typeName enthält ungültige Zeichen, z. B. ein eingebettetes Tabstoppzeichen.throwOnError is true and typeName contains invalid characters, such as an embedded tab. - oder --or- throwOnError ist true, und typeName ist eine leere Zeichenfolge.throwOnError is true and typeName is an empty string.

- oder --or- throwOnError ist true, und typeName stellt einen Arraytyp mit einer ungültigen Größe dar.throwOnError is true and typeName represents an array type with an invalid size.

- oder --or- typeName stellt ein Array von TypedReference dar.typeName represents an array of TypedReference.

Ein Fehler tritt auf, wenn typeName in einen Typnamen und einen Assemblynamen zerlegt wird (wenn z. B. der einfache Typname ein Sonderzeichen ohne Escapezeichen enthält).An error occurs when typeName is parsed into a type name and an assembly name (for example, when the simple type name includes an unescaped special character).

- oder --or- throwOnError ist true, und typeName enthält ungültige Syntax (z. B. "MyType[,*,]").throwOnError is true and typeName contains invalid syntax (for example, "MyType[,*,]").

- oder --or- typeName stellt einen generischen Typ dar, der einen Zeigertyp, einen ByRef-Typ oder Void als eines seiner Typargumente aufweist.typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments.

- oder --or- typeName stellt einen generischen Typ dar, der eine falsche Anzahl von Typargumenten aufweist.typeName represents a generic type that has an incorrect number of type arguments.

- oder --or- typeName stellt einen generischen Typ dar, und eines seiner Typargumente erfüllt nicht die Einschränkungen für den entsprechenden Typparameter.typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnError ist true, und die Assembly oder eine der zugehörigen Abhängigkeiten wurde nicht gefunden.throwOnError is true and the assembly or one of its dependencies was not found.

Die Assembly oder eine der zugehörigen Abhängigkeiten wurde gefunden, konnte aber nicht geladen werden.The assembly or one of its dependencies was found, but could not be loaded.

- oder --or- typeName enthält einen ungültigen Assemblynamen.typeName contains an invalid assembly name.

- oder --or- typeName ist ein gültiger Assemblyname ohne Typnamen.typeName is a valid assembly name without a type name.

Die Assembly oder eine der zugehörigen Abhängigkeiten ist ungültig.The assembly or one of its dependencies is not valid.

- oder --or- Die Assembly wurde mit einer Version der Common Language Runtime kompiliert, die höher ist als die Version, die derzeit geladen ist.The assembly was compiled with a later version of the common language runtime than the version that is currently loaded.

Hinweise

Verwenden Sie diese methodenüberladung und ihre zugehörigen Überladungen (GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) und GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean)), ersetzen die standardmäßige Implementierung von der GetType -Methode mit flexibler Implementierungen.Use this method overload and its associated overloads (GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) and GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean)) to replace the default implementation of the GetType method with more flexible implementations. Durch Ihre eigenen Methoden, die aufgelöst werden, geben Sie die Namen und die Namen der Assemblys, die sie enthalten, können Sie Folgendes tun:By providing your own methods that resolve type names and the names of the assemblies that contain them, you can do the following:

  • Steuern Sie, welche Version einer Assembly aus ein Typs geladen wird.Control which version of an assembly a type is loaded from.

  • Geben Sie eine andere Stelle, für einen Typnamen zu suchen, das nicht der Namen einer Assembly enthalten ist.Provide another place to look for a type name that does not include an assembly name.

  • Laden von Assemblys mit partiellen Assemblynamen.Load assemblies using partial assembly names.

  • Zurückgeben von Unterklassen von System.Type , die nicht von der common Language Runtime (CLR) erstellt werden.Return subclasses of System.Type that are not created by the common language runtime (CLR).

Beispielsweise kann in versionstolerante Serialisierung dieser Methode Sie mithilfe eines unvollständigen Namens nach einer "best fit"-Assembly zu suchen.For example, in version-tolerant serialization this method enables you to search for a "best fit" assembly by using a partial name. Andere Überladungen der GetType Methode erforderlich sind, eine Assembly qualifizierter Typname, der die Versionsnummer enthält.Other overloads of the GetType method require an assembly-qualified type name, which includes the version number.

Alternative Implementierungen des Typsystems möglicherweise Unterklassen der zurückzugebenden System.Type , die nicht von der CLR erstellt; alle Typen, die durch andere Überladungen zurückgegeben werden die GetType Methode werden die Runtime-Typen.Alternate implementations of the type system may need to return subclasses of System.Type that are not created by the CLR; all types that are returned by other overloads of the GetType method are runtime types.

Hinweise zur VerwendungUsage Notes

Analysieren der Überladung dieser Methode und ihre zugehörigen Überladungen typeName in den Namen eines Typs und den Namen einer Assembly, und klicken Sie dann die Namen auflösen.This method overload and its associated overloads parse typeName into the name of a type and the name of an assembly, and then resolve the names. Auflösung des Namens der Assembly tritt auf, vor der Auflösung des Typnamens, da Sie ein Namen im Kontext einer Assembly aufgelöst werden muss.Resolution of the assembly name occurs before resolution of the type name, because a type name must be resolved in the context of an assembly.

Hinweis

Wenn Sie mit dem Konzept der Assembly qualifizierten Typnamen nicht vertraut sind, finden Sie unter den AssemblyQualifiedName Eigenschaft.If you are unfamiliar with the concept of assembly-qualified type names, see the AssemblyQualifiedName property.

Wenn typeName ist kein Name mit assemblyqualifikation, Assembly-Auflösung wird übersprungen.If typeName is not an assembly-qualified name, assembly resolution is skipped. Nicht qualifizierte Typennamen im Kontext von "mscorlib.dll" oder der aktuell ausgeführten Assembly aufgelöst werden können, oder optional können Sie angeben, eine Assembly in den typeResolver Parameter.Unqualified type names can be resolved in the context of Mscorlib.dll or the currently executing assembly, or you can optionally provide an assembly in the typeResolver parameter. Die Auswirkungen der ein- oder den Assemblynamen auslassen, für verschiedene Arten der namensauflösung in als Tabelle angezeigt, die gemischten namensauflösung Abschnitt.The effects of including or omitting the assembly name for different kinds of name resolution are displayed as a table in the Mixed Name Resolution section.

Hinweise zur allgemeinen Verwendung:General usage notes:

  • Übergeben Sie keine Methoden zum assemblyResolver oder typeResolver , wenn sie von unbekannten oder nicht vertrauenswürdigen Aufrufern stammen.Do not pass methods to assemblyResolver or typeResolver if they come from unknown or untrusted callers. Verwenden Sie nur Methoden, die Sie bereitstellen oder mit denen Sie vertraut sind.Use only methods that you provide or that you are familiar with.

    Achtung

    Mit Methoden von unbekannten oder nicht vertrauenswürdigen Aufrufern kann Erhöhung von Berechtigungen für bösartigen Code führen.Using methods from unknown or untrusted callers could result in elevation of privilege for malicious code.

  • Wenn Sie weglassen der assemblyResolver und/oder typeResolver Parameter wird der Wert des der throwOnError Parameter übergeben wird, um die Methoden, die standardauflösung ausführen.If you omit the assemblyResolver and/or typeResolver parameters, the value of the throwOnError parameter is passed to the methods that perform the default resolution.

  • Wenn throwOnError ist true, löst diese Methode eine TypeLoadException beim typeResolver gibt null, und ein FileNotFoundException beim assemblyResolver gibt null.If throwOnError is true, this method throws a TypeLoadException when typeResolver returns null, and a FileNotFoundException when assemblyResolver returns null.

  • Diese Methode fängt keine Ausnahmen von assemblyResolver und typeResolver.This method does not catch exceptions thrown by assemblyResolver and typeResolver. Sie sind verantwortlich für alle Ausnahmen, die von den Resolvermethoden ausgelöst werden.You are responsible for any exceptions that are thrown by the resolver methods.

Auflösen von AssemblysResolving Assemblies

Die assemblyResolver -Methode empfängt ein AssemblyName -Objekt, das erstellt wird, durch Analysieren der Zeichenfolge-Assemblyname, der Bestandteil typeName.The assemblyResolver method receives an AssemblyName object, which is produced by parsing the string assembly name that is included in typeName. Wenn typeName enthält nicht den Namen einer Assembly assemblyResolver wird nicht aufgerufen und null übergeben wird, um typeResolver.If typeName does not contain an assembly name, assemblyResolver is not called and null is passed to typeResolver.

Wenn assemblyResolver ist nicht angegeben wird, Überprüfung wird verwendet, um die Assembly zu suchen.If assemblyResolver is not supplied, standard assembly probing is used to locate the assembly. Wenn assemblyResolver bereitgestellt wird, wird die GetType Methode führt keine Standardsuche; in diesem Fall müssen Sie sicherstellen, dass Ihre assemblyResolver verarbeiten alle Assemblys, die Sie an sie übergeben werden kann.If assemblyResolver is provided, the GetType method does not do standard probing; in that case you must ensure that your assemblyResolver can handle all the assemblies you pass to it.

Die assemblyResolver Methode zurückgeben soll null , wenn die Assembly nicht aufgelöst werden kann.The assemblyResolver method should return null if the assembly cannot be resolved. Wenn assemblyResolver gibt null, typeResolver nicht aufgerufen wird und keine weitere Verarbeitung erfolgt; darüber hinaus Wenn throwOnError ist true, FileNotFoundException ausgelöst.If assemblyResolver returns null, typeResolver is not called and no further processing occurs; additionally, if throwOnError is true, a FileNotFoundException is thrown.

Wenn die AssemblyName übergebene assemblyResolver ist eine partielle Name, eine oder mehrere Teile sind null.If the AssemblyName that is passed to assemblyResolver is a partial name, one or more of its parts are null. Wenn keine Version, beispielsweise die Version Eigenschaft null.For example, if it has no version, the Version property is null. Wenn die Version -Eigenschaft, die CultureInfo -Eigenschaft, und die GetPublicKeyToken Methode geben null, und klicken Sie dann nur der einfache Namen der Assembly angegeben wurde.If the Version property, the CultureInfo property, and the GetPublicKeyToken method all return null, then only the simple name of the assembly was supplied. Die assemblyResolver Methode verwenden kann, oder ignorieren Sie alle Teile des Namens der Assembly.The assemblyResolver method can use or ignore all parts of the assembly name.

Die Auswirkungen der Optionen für die namensauflösung von anderen Assembly werden angezeigt, wie eine Tabelle in der gemischten namensauflösung Abschnitt für einfache und die Assembly qualifizierten Typnamen.The effects of different assembly resolution options are displayed as a table in the Mixed Name Resolution section, for simple and assembly-qualified type names.

Auflösen von TypenResolving Types

Wenn typeName gibt keinen Namen einer Assembly, typeResolver wird immer aufgerufen.If typeName does not specify an assembly name, typeResolver is always called. Wenn typeName gibt den Namen einer Assembly typeResolver wird nur aufgerufen, wenn der Name der Assembly erfolgreich aufgelöst wird.If typeName specifies an assembly name, typeResolver is called only when the assembly name is successfully resolved. Wenn assemblyResolver oder Standardassembly gibt null, typeResolver wird nicht aufgerufen.If assemblyResolver or standard assembly probing returns null, typeResolver is not called.

Die typeResolver erhält die Methode drei Argumente:The typeResolver method receives three arguments:

  • Die Assembly zu suchen oder null Wenn typeName enthält keinen Namen einer Assembly.The assembly to search or null if typeName does not contain an assembly name.

  • Der einfache Name des Typs.The simple name of the type. Im Falle eines geschachtelten Typs ist ist dies die äußersten enthaltenden Typ.In the case of a nested type, this is the outermost containing type. Im Fall von einem generischen Typ ist dies der einfache Name des generischen Typs.In the case of a generic type, this is the simple name of the generic type.

  • Ein boolescher Wert, der true Wenn Namen die Groß-/Kleinschreibung ignoriert werden.A Boolean value that is true if the case of type names is to be ignored.

Die Implementierung bestimmt die Möglichkeit, die diese Argumente verwendet werden.The implementation determines the way these arguments are used. Die typeResolver Methode zurückgeben soll null , wenn er nicht auflösen kann.The typeResolver method should return null if it cannot resolve the type. Wenn typeResolver gibt null und throwOnError ist true, diese Überladung der GetType löst eine TypeLoadException.If typeResolver returns null and throwOnError is true, this overload of GetType throws a TypeLoadException.

Die Auswirkungen der Optionen für die namensauflösung von anderen Typs werden angezeigt, wie eine Tabelle in der gemischten namensauflösung Abschnitt für einfache und die Assembly qualifizierten Typnamen.The effects of different type resolution options are displayed as a table in the Mixed Name Resolution section, for simple and assembly-qualified type names.

Auflösen von geschachtelten TypenResolving Nested Types

Wenn typeName ist ein geschachtelter Typ, der nur den Namen des äußersten enthaltenden Typ übergeben wird, um typeResolver.If typeName is a nested type, only the name of the outermost containing type is passed to typeResolver. Wenn typeResolver diesen Typ zurückgibt, die GetNestedType Methode rekursiv aufgerufen wird, bis der innerste geschachtelte Typ behoben wurde.When typeResolver returns this type, the GetNestedType method is called recursively until the innermost nested type has been resolved.

Auflösen von generischen TypenResolving Generic Types

Die GetType rekursiv aufgerufen, um generische Typen aufzulösen: Um den generischen Typ selbst zu beheben und dann seiner Typargumente aufgelöst.The GetType is called recursively to resolve generic types: First to resolve the generic type itself, and then to resolve its type arguments. Wenn ein Argument vom Typ generisch ist, wird GetType rekursiv aufgerufen, um seiner Typargumente lösen und so weiter.If a type argument is generic, GetType is called recursively to resolve its type arguments, and so on.

Die Kombination von assemblyResolver und typeResolver zum Auflösen von allen Ebenen der diese Rekursion in der Lage sein, dass Sie müssen bereitstellen.The combination of assemblyResolver and typeResolver that you provide must be capable of resolving all levels of this recursion. Nehmen wir beispielsweise an, die Sie angeben, ein assemblyResolver , steuert das Laden von MyAssembly.For example, suppose you supply an assemblyResolver that controls the loading of MyAssembly. Angenommen, Sie möchten den generischen Typ aufgelöst Dictionary<string, MyType> (Dictionary(Of String, MyType) in Visual Basic).Suppose you want to resolve the generic type Dictionary<string, MyType> (Dictionary(Of String, MyType) in Visual Basic). Sie können den folgenden Namen für den generischen Typ übergeben:You might pass the following generic type name:

"System.Collections.Generic.Dictionary`2[System.String,[MyNamespace.MyType, MyAssembly]]"  

Beachten Sie, dass MyType ist das Argument nur auf die Assembly qualifizierten Typnamen.Notice that MyType is the only assembly-qualified type argument. Die Namen der Dictionary<TKey,TValue> und String Klassen sind nicht für die Assembly qualifizierten.The names of the Dictionary<TKey,TValue> and String classes are not assembly-qualified. Ihre typeResolver muss entweder eine Assembly können Handle sein oder null, da er erhält null für Dictionary<TKey,TValue> und String.Your typeResolver must be able handle either an assembly or null, because it will receive null for Dictionary<TKey,TValue> and String. Es kann für diesen Fall behandeln, indem Sie eine Überladung aufrufen der GetType -Methode, die eine Zeichenfolge akzeptiert, da beide mit dem nicht qualifizierten Typnamen in "mscorlib.dll" sind:It can handle that case by calling an overload of the GetType method that takes a string, because both of the unqualified type names are in Mscorlib.dll:

Type t = Type.GetType(test,
                      (aName) => aName.Name == "MyAssembly" ? 
                          Assembly.LoadFrom(@".\MyPath\v5.0\MyAssembly.dll") : null,
                      (assem, name, ignore) => assem == null ? 
                          Type.GetType(name, false, ignore) : 
                              assem.GetType(name, false, ignore)
                     ); 

Die assemblyResolver Methode wird für den Wörterbuchtyp und den String-Datentyp nicht aufgerufen, da diese Namen nicht mit assemblyqualifikation sind.The assemblyResolver method is not called for the dictionary type and the string type, because those type names are not assembly-qualified.

Nehmen wir nun an, die anstelle von System.String, ist der erste generische Argumenttyp YourType, von YourAssembly:Now suppose that instead of System.String, the first generic argument type is YourType, from YourAssembly:

"System.Collections.Generic.Dictionary`2[[YourNamespace.YourType, YourAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null], [MyNamespace.MyType, MyAssembly]]"  

Da diese Assembly weder "mscorlib.dll" als auch der aktuell ausgeführten Assembly ist, können Sie nicht auflösen YourType ohne einen Namen mit assemblyqualifikation.Because this assembly is neither Mscorlib.dll nor the currently executing assembly, you cannot resolve YourType without an assembly-qualified name. Da Ihre assemblyResolve werden rekursiv aufgerufen werden, es muss in diesem Fall können.Because your assemblyResolve will be called recursively, it must be able to handle this case. Anstatt null für andere Assemblys als MyAssembly, führt es jetzt Laden einer Assembly, die mit dem angegebenen AssemblyName Objekt.Instead of returning null for assemblies other than MyAssembly, it now performs an assembly load using the supplied AssemblyName object.

Type t2 = Type.GetType(test,
                       (aName) => aName.Name == "MyAssembly" ? 
                           Assembly.LoadFrom(@".\MyPath\v5.0\MyAssembly.dll") : 
                           Assembly.Load(aName),
                       (assem, name, ignore) => assem == null ? 
                           Type.GetType(name, false, ignore) : 
                               assem.GetType(name, false, ignore), true
                      ); 

Zurück zum Hinweise zur Verwendung.Back to Usage Notes.

Auflösen von Namen mit SonderzeichenResolving Type Names with Special Characters

Bestimmte Zeichen haben eine besondere Bedeutung in der Assembly qualifizierten Namen.Certain characters have special meanings in assembly-qualified names. Wenn ein einfacher Typname diese Zeichen enthält, führen die Zeichen Analysefehler auf, wenn es sich bei der einfache Namen einer Assembly qualifizierten Namen gehört.If a simple type name contains these characters, the characters cause parsing errors when the simple name is part of an assembly-qualified name. Um die Analysefehler zu vermeiden, Sie müssen mit Escapezeichen versehen die Sonderzeichen mit einem umgekehrten Schrägstrich, bevor Sie die Assembly qualifizierten Namen zu übergeben, können die GetType Methode.To avoid the parsing errors, you must escape the special characters with a backslash before you can pass the assembly-qualified name to the GetType method. Wenn ein Typ mit dem Namen wird z. B. Strange]Type, das Escape-Zeichen muss vorab die eckige Klammer wie folgt hinzugefügt werden: Strange\]Type.For example, if a type is named Strange]Type, the escape character must be added ahead of the square bracket as follows: Strange\]Type.

Hinweis

Namen mit solchen Sonderzeichen können nicht in Visual Basic oder c# erstellt werden, aber Sie können mithilfe von Microsoft intermediate Language (MSIL) oder durch Ausgeben von dynamischen Assemblys erstellt werden.Names with such special characters cannot be created in Visual Basic or C#, but can be created by using Microsoft intermediate language (MSIL) or by emitting dynamic assemblies.

Die folgende Tabelle zeigt die Sonderzeichen für Typnamen.The following table shows the special characters for type names.

ZeichenCharacter BedeutungMeaning
, (Komma), (comma) Trennzeichen für die Assembly qualifizierten Namen.Delimiter for assembly-qualified names.
[] (eckige Klammern)[] (square brackets) Gibt Sie als Suffixpaar einen Arraytyp an; als Trennzeichenpaar einschließt generischen Argument-Listen und die Assembly qualifizierten Namen.As a suffix pair, indicates an array type; as a delimiter pair, encloses generic argument lists and assembly-qualified names.
& (kaufmännisches und-Zeichen)& (ampersand) Gibt an, dass ein Typ ein Verweistyp ist, als Suffix.As a suffix, indicates that a type is a reference type.
* (Sternchen)* (asterisk) Gibt an, dass ein Typ ein Zeigertyp ist, als Suffix.As a suffix, indicates that a type is a pointer type.
+ (plus)+ (plus) Trennzeichen für geschachtelte Typen.Delimiter for nested types.
\ (umgekehrter Schrägstrich)\ (backslash) Escape-Zeichen.Escape character.

Eigenschaften, z. B. AssemblyQualifiedName Rückgabe Zeichenfolgen korrekt in Escapezeichen eingeschlossen.Properties such as AssemblyQualifiedName return correctly escaped strings. Müssen Sie ordnungsgemäß mit Escapezeichen versehene Zeichenfolgen zum Übergeben der GetType Methode.You must pass correctly escaped strings to the GetType method. Im Gegenzug die GetType Methode übergibt ordnungsgemäß mit Escapezeichen versehene Namen typeResolver und die Standardmethoden für Typ Auflösung.In turn, the GetType method passes correctly escaped names to typeResolver and to the default type resolution methods. Wenn Sie einen Namen, einem Namen ohne Escapezeichen in Vergleichen typeResolver, müssen Sie die Escape-Zeichen entfernen.If you need to compare a name to an unescaped name in typeResolver, you must remove the escape characters.

Zurück zum Hinweise zur Verwendung.Back to Usage Notes.

Gemischte namensauflösungMixed Name Resolution

Die folgende Tabelle enthält die Interaktionen zwischen assemblyResolver, typeResolver, und die standardnamensauflösung für alle Kombinationen der Typname und Assemblyname in typeName:The following table summarizes the interactions between assemblyResolver, typeResolver, and default name resolution, for all combinations of type name and assembly name in typeName:

Inhalt des TypnamensContents of type name Assembly-Resolver-MethodeAssembly resolver method Typ-Resolver-MethodeType resolver method ErgebnisResult
Typ ","-assemblytype, assembly NULLnull NULLnull Entspricht dem Aufrufen der Type.GetType(String, Boolean, Boolean) -methodenüberladung.Equivalent to calling the Type.GetType(String, Boolean, Boolean) method overload.
Typ ","-assemblytype, assembly bereitgestelltprovided NULLnull assemblyResolver Gibt die Assembly zurück oder null Falls die Assembly aufgelöst werden kann.assemblyResolver returns the assembly or returns null if it cannot resolve the assembly. Wenn die Assembly aufgelöst wird, wird die Assembly.GetType(String, Boolean, Boolean) Überladung wird verwendet, um den Typ aus der Assembly zu laden; andernfalls ist es nicht versucht, den Typ aufzulösen.If the assembly is resolved, the Assembly.GetType(String, Boolean, Boolean) method overload is used to load the type from the assembly; otherwise, there is no attempt to resolve the type.
Typ ","-assemblytype, assembly NULLnull bereitgestelltprovided Konvertieren den Namen der Assembly entspricht einer AssemblyName -Objekt ab, und rufen die Assembly.Load(AssemblyName) -methodenüberladung, um die Assembly zu erhalten.Equivalent to converting the assembly name to an AssemblyName object and calling the Assembly.Load(AssemblyName) method overload to get the assembly. Wenn die Assembly aufgelöst wird, erfolgt eine Übergabe an typeResolverist, andernfalls typeResolver wird nicht aufgerufen, und es gibt keinen weiteren Versuch, den Typ aufzulösen.If the assembly is resolved, it is passed to typeResolver; otherwise, typeResolver is not called and there is no further attempt to resolve the type.
Typ ","-assemblytype, assembly bereitgestelltprovided bereitgestelltprovided assemblyResolver Gibt die Assembly zurück oder null Falls die Assembly aufgelöst werden kann.assemblyResolver returns the assembly or returns null if it cannot resolve the assembly. Wenn die Assembly aufgelöst wird, erfolgt eine Übergabe an typeResolverist, andernfalls typeResolver wird nicht aufgerufen, und es gibt keinen weiteren Versuch, den Typ aufzulösen.If the assembly is resolved, it is passed to typeResolver; otherwise, typeResolver is not called and there is no further attempt to resolve the type.
Typtype NULL, der bereitgestellt wirdnull, provided NULLnull Entspricht dem Aufrufen der Type.GetType(String, Boolean, Boolean) -methodenüberladung.Equivalent to calling the Type.GetType(String, Boolean, Boolean) method overload. Da der Name der Assembly nicht angegeben ist, werden nur "mscorlib.dll" und die derzeit ausgeführte Assembly durchsucht.Because the assembly name is not provided, only Mscorlib.dll and the currently executing assembly are searched. Wenn assemblyResolver bereitgestellt wird, werden diese ignoriert wird.If assemblyResolver is provided, it is ignored.
Typtype NULL, der bereitgestellt wirdnull, provided bereitgestelltprovided typeResolver wird aufgerufen, und null für die Assembly übergeben wird.typeResolver is called, and null is passed for the assembly. typeResolver bieten einen Typ von einer Assembly aus, einschließlich der Assemblys, die sie für den Zweck lädt ab.typeResolver can provide a type from any assembly, including assemblies it loads for the purpose. Wenn assemblyResolver bereitgestellt wird, werden diese ignoriert wird.If assemblyResolver is provided, it is ignored.
Assemblyassembly NULL, der bereitgestellt wirdnull, provided NULL, der bereitgestellt wirdnull, provided Ein FileLoadException ausgelöst wird, da der Name der Assembly als handele es sich um eine Assembly qualifizierter Typname analysiert wird.A FileLoadException is thrown, because the assembly name is parsed as if it were an assembly-qualified type name. Dies führt zu einem ungültigen Assemblynamen.This results in an invalid assembly name.

Zurück zu: Hinweise zur Verwendung, Auflösen von Assemblys, Auflösen von Typen.Back to: Usage Notes, Resolving Assemblies, Resolving Types.

Gilt für: