![]() |
[.Net] TypeOf(Klasse) polymorph instanzieren
Moin,
wenn ich unter delphi.net einen meta-typ (&Type), einer bestimmten klasse, habe; Kann man daraus irgendwie eine instanze erstellen, oder ist dies nur mit meta-klassen möglich? Das problem ist, dass man attribute nur mit konstanten ausdrücken erstellen kann. Meta-classen gelten leider nicht als konstant, typen hingegen schon. Was soll das?
Delphi-Quellcode:
Deshalb die frage, ob ich aus dem typ eine instanze erstellen kann. Oder habt ihr andere ideen?
type
MyObject = class (&object) public constructor Create; virtual; end; MyClass = class of MyObject ; ... [MyAttributeTest(MyObject )] // geht nicht, weil nicht konstant [MyAttributeTest(typeOf(MyObject))] // geht [edit=fkerber]Neu gespeichert wg. Code-Highlighting. Mfg, fkerber[/edit] |
Re: [.Net] TypeOf(Klasse) polymorph instanzieren
Hi -
aus dem Typ eine Instanz geht so (angenommen, die Variable typ sei vom Typ System.Type):
Delphi-Quellcode:
So bauen wir Plugins zusammen, die Idee mit den Attributen ist auch interessant. Was genau willst du denn für Objekte übergeben? Woher kommen denn dann die dynamischen Attributwerte?
var o : MyObject;
... o:=MyObject(System.Activator.CreateInstance(typ)); Viele Grüße Phil |
Re: [.Net] TypeOf(Klasse) polymorph instanzieren
Zitat:
Der dynamische attributwert ist ja die übergebene klasse, oder eben der typ. Ich will zB. die klasse für einen PropertyDescriptor definieren, der seine einstellungen dann aus weiteren attributen holt. Zusammen mit einem typeConverter kann man den PropertyGrid, dann lustige sachen unterjubeln. Würde auch ohne 'Custom'-PropertyDescriptor pro propertiy gehen, aber dann hat man noch schönere möglichkeiten die property zu verbiegen Wenn ich da eine saubere sache habe, werde ich es vielleicht auch in die CodeLib stellen. zB. interessant wenn man Anwendung-einstellungs-properties mit schönes DisplayNamen versehen, lokaliesieren oder subProperties haben will. etc. :-D |
Re: [.Net] TypeOf(Klasse) polymorph instanzieren
Zitat:
Oder sollte man eine fabrik zwischen schalten? |
Re: [.Net] TypeOf(Klasse) polymorph instanzieren
OK! Habs geschnallt :-D .Net sucht sich den best passenden konstruktor, zu der übergebenen ArgList *g* Also ist es doch möglich polymorphe konstruktoren, mit hilfe des meta-typs, zu instanzieren.
Danke nochmal :thumb: |
Re: [.Net] TypeOf(Klasse) polymorph instanzieren
Jetzt bist du mir zuvor gekommen - jaja, .NET ist da find ich sehr angenehm, Reflection ist - wie auch in Java - ein echtes Göttergeschenk, finde ich.
Happy Coding! Phil |
Re: [.Net] TypeOf(Klasse) polymorph instanzieren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz