Sie sind hier:
Startseite
|
Wissen
Unser Kundenteam erreichen Sie Montag bis Freitag unter +49 (0) 201/649590-50 |
Kontaktformular
MENU
Medien
Übersicht
Lexikon/Glossar
Weblog
Konferenzvorträge
Fachbücher
Fachartikel
Leserportal
Autoren gesucht!
Literaturtipps
Downloads
Newsletter
.NET
Startseite
Einführung
.NET Core
.NET 4.0/4.5.x/4.6.x
.NET 3.0/3.5
.NET 2.0
.NET-Lexikon
Programmiersprachen
Entwicklerwerkzeuge
Klassenreferenz
Softwarekomponenten
Windows Runtime
World Wide Wings-Demo
Versionsgeschichte
Codebeispiele
ASP.NET
Artikel
Bücher
Schulung & Beratung
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
Forum
Schulung & Beratung
PowerShell
Startseite
Commandlet-Referenz
Codebeispiele
Commandlet Extensions
Versionsgeschichte
Schulungen+Beratung
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Scripting
Startseite
Lexikon
FAQ
Buecher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
WMI-Klassenreferenz
Scripting-Tools
WSH-Editoren
Codebeispiele
.NET-Scripting
Forum
Schulung & Beratung
Nutzer
Anmeldung/Login
Buchleser-Registrierung
Gast-Registrierung
Hilfe
Foren
Website-FAQ
Technischer Support
Site Map
Tag Cloud
Suche
Kontakt
Erklärung des Begriffs: System.Type
Zur Stichwortliste unseres Lexikons
Was ist
System.Type
?
Die Frage nach ihrem Typ konnte eine
Variable
im
Component Object Model
(COM) aufgrund eines unzureichenden Bewusstseins ihrer selbst nur sehr pauschal mit ihrem
Typname
n beantworten. Detailinformationen über seine Fähigkeiten waren von einem
COM-Objekt
nicht direkt zu bekommen, sondern allenfalls indirekt über einen Zugriff auf die
Typbibliothek
, sofern eine solche überhaupt vorhanden war.
Im .NET Framework sind
Metadaten
Pflichtbestandteile einer jeden
Komponente
und Anwendung. Die
Metadaten
sind über den so genannten Reflection-Mechanismus innerhalb und außerhalb der
Assembly
auslesbar. Die Implementierung einer
Methode
GetType() in der Klasse
System.Object
sorgt dafür, dass jedes .NET-Objekt diese
Methode
besitzt und ein passendes Objekt vom Typ System.Type liefert, das Metainformationen über sich selbst enthält.
Wege zum Type-Objekt
Eine Instanz von System.Type erhält man auf verschiedenen Wegen, u.a. über die
Methode
GetType() eines jeden Objekts
System.Data
.
DataSet
d = new
System.Data
.
DataSet
();
System.Type t = d.GetType();
oder über die gleichnamige statische
Methode
in der Klasse System.Type.
t = System.Type.GetType("
System.Data
.
DataSet
");
Im zweiten Fall ist der Name des Typs einschließlich Namensraum Namespace in der korrekten Groß-/Kleinschreibung anzugeben. Kann der Typ nicht gefunden werden, liefert die
Methode
Nothing bzw. null zurück. Durch optionale Parameter kann gesteuert werden, ob stattdessen eine
Ausnahme
erzeugt und ob die Groß-/Kleinschreibung ignoriert werden soll.
System.Type.GetType() sucht nur in den geladenen Assemblies. Typen in anderen Assemblies findet man, indem man sich zunächst eine passende Instanz von
System.Reflection
.
Assembly
verschafft und dann GetType() auf dem
Assembly
-Objekt aufruft.
Auch für
COM-Objekt
e kann man Type-Objekte erhalten, indem man GetTypeFrom
CLS
ID() oder GetTypeFrom
ProgID
() aufruft.
Informationen im Type-Objekt
Ein Type-Objekt liefert zahlreiche Informationen, z.B. die Namen und Namensbestandteile. Dabei erkennt man auch, dass jeder Typ einen
GUI
D besitzt für den Fall, dass die Klasse über die COM-Interoperabilität genutzt werden soll.
Console.WriteLine(t.FullName);
Console.WriteLine(t.Name);
Console.WriteLine(t.Namespace);
Console.WriteLine(t.
GUI
D);
Das
Attribut
Assembly
QualifiedName liefert den vollständigen Namen der
Assembly
;
Assembly
das zugehörige
Assembly
-Objekt. Den Namen der Basisklasse des Typs erhält man über BaseType. Zur Erinnerung: Jede Klasse im .NET-Framework (außer
System.Object
) besitzt genau eine Oberklasse. Für Schnittstellen bleibt BaseType immer leer.
System.Type realisiert verfügt über eine große Menge von Boolean-
Attribut
en, die Auskunft über Eigenschaften des Typs geben. Bestimmbar sind zum Beispiel auf diese Weise die Art des Typs,
Console.WriteLine(t.IsClass);
Console.WriteLine(t.IsInterface);
Console.WriteLine(t.IsEnum);
Console.WriteLine(t.IsPointer);
Console.WriteLine(t.IsPrimitive);
Console.WriteLine(t.IsValueType);
Console.WriteLine(t.IsArray);
die Form der Übergabe,
Console.WriteLine(t.IsByRef);
Console.WriteLine(t.IsMarshalByRef);
die Nutzbarkeit von COM aus,
Console.WriteLine(t.IsCOMObject);
die Sichtbarkeit,
Console.WriteLine(t.IsPublic);
Console.WriteLine(t.IsNotPublic);
und die Serialisierbarkeit
Console.WriteLine(t.IsSerializable);
Mitglieder ermitteln
Die Definition des Typs erforschen kann man über das von System.Type ausgehende Objektmodell, das in
System.Reflection
implementiert ist. Type implementiert zahlreiche
Methode
n (GetMethods(), GetProperties(), GetConstru
ctor
s(), etc.), die Mengen mit den einzelnen Mitgliedern des Typs liefern. GetMembers() liefert eine übergreifende
Liste
aller Mitglieder.
Querverweise zu anderen Begriffen im Lexikon
CLS
GUI
ProgID
Component Object Model
COM
System.Reflection
Typbibliothek
System.Object
System.Data
ctor
Reflection
Identifier
COM-Objekt
Komponente
Metadaten
Assembly
Variable
Ausnahme
Attribut
Typname
Methode
DataSet
Objekt
Liste
Beratung & Support:
Anfrage für Beratung/Consulting zu Thema System.Type;
Gesamter Beratungsthemenkatalog
Technischer Support zum Thema System.Type;
Schulungen zu diesem Thema:
Anfrage für eine individuelle Schulung zum Thema System.Type;
Gesamter Schulungsthemenkatalog
Bücher zu diesem Thema:
Alle unsere aktuellen Fachbücher