Der durch die Assembly qualifizierte Name eines Typs besteht aus dem Typnamen einschließlich dessen Namespace, gefolgt einem Komma sowie dem Anzeigenamen der Assembly. Der Anzeigename einer Assembly kann mit der Assembly.FullName-Eigenschaft abgerufen werden.
Hinweis |
|---|
In .NET Framework, Version 2.0, wird der Assemblyidentität die Prozessorarchitektur hinzugefügt. Diese kann als Teil der Zeichenfolgen für Assemblynamen angegeben werden. Beispiel: "ProcessorArchitecture=msil". Aus Kompatibilitätsgründen ist diese Angabe jedoch nicht in der von der AssemblyQualifiedName-Eigenschaft zurückgegebenen Zeichenfolge enthalten. Siehe AssemblyName.ProcessorArchitecture. |
Alle Compiler, die die Common Language Runtime unterstützen, geben den einfachen Namen einer geschachtelten Klasse aus. Durch die Reflektion wird auf Anforderung ein ergänzter Name entsprechend den folgenden Konventionen gebildet.
Trennzeichen | Bedeutung |
|---|
Umgekehrter Schrägstrich (\) | Escapezeichen. |
Komma (,) | Wird dem Assemblynamen vorangestellt. |
Pluszeichen (+) | Wird einer geschachtelten Klasse vorangestellt. |
Punkt (.) | Kennzeichnet Namespacebezeichner. |
Klammern ([]) | Bezeichnet nach einem Typnamen ein Array dieses Typs. - oder - Umschließt bei einem generischen Typ die Liste der generischen Typargumente. - oder - Umschließt in einer Typargumentliste einen durch die Assembly gekennzeichneten Typ. |
Der durch die Assembly gekennzeichnete Name einer Klasse könnte z. B. wie folgt lauten:
TopNamespace.SubNameSpace.ContainingClass+NestedClass, MyAssembly, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089
Falls der Namespace ein Pluszeichen enthält, z. B. TopNamespace.Sub+Namespace, wird dem Pluszeichen (+) ein Escapezeichen (\) vorangestellt, damit es nicht als Schachtelungstrennzeichen interpretiert wird. Die Reflektion gibt diese Zeichenfolge wie folgt aus:
TopNamespace.Sub\+Namespace.ContainingClass+NestedClass, MyAssembly, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089
Aus "++" wird "\+\+", und aus "\" wird "\\".
Dieser qualifizierte Name kann beibehalten und später zum Laden des Type verwendet werden. Um einen Type zu suchen und zu laden, verwenden Sie GetType entweder nur mit dem Typnamen oder mit dem durch die Assembly qualifizierten Typnamen. Wenn nur der Typname angegeben wird, sucht GetType nach Type in der Assembly des Aufrufers und danach in der Systemassembly. Wenn der durch die Assembly gekennzeichnete Typname angegeben wird, sucht GetType nach Type in einer beliebigen Assembly.
Die Typnamen können am Ende Zeichen enthalten, die zusätzliche Informationen über den Typ angeben, z. B., ob es sich um einen Verweis-, Zeiger- oder Arraytyp handelt. Um den Typnamen ohne diese nachfolgenden Zeichen abzurufen, verwenden Sie t.GetElementType().ToString(), wobei t der Typ ist.
Außer bei Assemblynamen sind Leerzeichen in allen Komponenten von Typnamen relevant. Beim Assemblynamen sind Leerzeichen nur vor dem Trennzeichen ',' relevant, dahinter werden sie ignoriert.
Generische Argumente von generischen Typen werden selbst durch den Assemblynamen qualifiziert. Im durch die Assembly qualifizierten Typnamen für MyGenericClass<int> (MyGenericClass(Of Integer) in Visual Basic) wird int z. B. in den durch die Assembly qualifizierten Typnamen für Int32 erweitert.
Wenn das aktuelle Type-Objekt einen generischen Parameter darstellt, gibt diese Eigenschaft null zurück.