Tolle Frage. Ich habe nur eine teilweise Antwort. Derzeit gibt es 4 Klassen, die von Type abgeleitet sind. Sie können die Typenhierarchie auf MSDN finden.
System.Object
System.Reflection.MemberInfo
System.Type
System.Reflection.Emit.EnumBuilder
System.Reflection.Emit.GenericTypeParameterBuilder
System.Reflection.Emit.TypeBuilder
System.Reflection.TypeDelegator
Es scheint, dass diese Typen grundsätzlich dazu verwendet werden, einige "Instanz-Erstellungs"-Logik zu kapseln. Aber ich habe den Code nicht erforscht.
Bearbeiten
Oh, wow... das ist interessant. Die Codebeispiele scheinen nicht nur Instanzen von Typen zu erstellen, sondern auch Klassen selbst. Daher erstellen einige dieser Klassen CLR-Typen und speichern sie in echten Assemblys ab. Das ist ziemlich cool.
Nochmal bearbeiten
Einige der Experten haben gesagt, dass es mehr als die vier von mir aufgelisteten Typen gibt. Ich habe Reflector ReSharper verwendet, um die abgeleiteten Typen zu finden und habe diese gefunden (es könnten immer noch fehlende Typen geben):
System.Type
System.RuntimeType
System.ReflectionOnlyType
System.Reflection.Emit.EnumBuilder
System.Reflection.Emit.GenericTypeParameterBuilder
System.Reflection.Emit.SymbolType
System.Reflection.Emit.TypeBuilder
System.Reflection.Emit.TypeBuilderInstantiation
System.Reflection.TypeDelegator
Noch einmal bearbeiten
wie @MarcGravell bereits erwähnte, gibt es wirklich keinen Grund, warum Sie eine Klasse von einer dieser Klassen ableiten möchten. Sie könnten sie jedoch innerhalb einer Klasse Ihrer eigenen verwenden, um Ihre eigene Logik zu kapseln.
1 Stimmen
Sehr interessante Frage! Bitte entfernen Sie den unnötigen Codeblock, er fügt Ihrer Frage wirklich keinen Mehrwert hinzu als nur
class MyType : Type { ... }
.0 Stimmen
Ich werde es jemandem mit Bearbeitungsrechten überlassen, der mit Ihnen einverstanden ist, dies zu tun. Ich denke, es ist interessant zu sehen, was eine abgeleitete Klasse implementieren muss, um zu kompilieren...