![]() |
Classen Typinfo GUID & Generics. Nicht eindeutig identifizierbar?
Delphi-Quellcode:
Hallo, ich bin eben auf ein Problem mit der eindeutigen idenzifizierung meiner registrierten Klassen gestoßen..
Class Procedure Tfactory.Reg(Cl: TClass);
Begin If Assigned(Fclassregister) Then Begin Var Info := Ptypeinfo(Cl.ClassInfo); If Assigned(Info) Then Try Var Guid := Info^.TypeData.GUID; Fclassregister.Reg(Guid, Cl); Finally End; End; End; Tfactory.Reg([taclass<String, String>, taclass<String, Byte>, taclass<String, Integer>, taclass<Byte, Byte>]); Bisher hab ich in einem dictionary die paare (guid,class)registriert, wobei die guid wie oben dargestellt erzeugt/abgefragt wurde. Ich ging davon aus,die seien systemweit eindeutig und daher besser geeignet als irgendwelche selbst erstellten strings etc ? nun habe ich den fall, dass ich mehrerere generische klassen registrieren - und auch wieder abfragen will, aber hier scheinen die klassen guids immer gleich zu sein? jedenfalls werden bereits bestehende registrierungen dabei vom neuen generischen typ überschrieben...:?:pale: wie kann ich nun auch solche generischen klassen eindeutig zuordnen. sonst hab ich bald chaos |
AW: Classen Typinfo GUID & Generics. Nicht eindeutig identifizierbar?
Wie wird der Klasse eine GUID zugeordnet? (per Property, Annotation, Funktion...?)
Hat im Codebeispiel nur die generische "Basis"-Klasse taclass eine GUID? |
AW: Classen Typinfo GUID & Generics. Nicht eindeutig identifizierbar?
Zitat:
Zitat:
Deinen Ansatz kannst du also getrost in die Tonne treten - nicht nur bei generischen Klassen. |
AW: Classen Typinfo GUID & Generics. Nicht eindeutig identifizierbar?
Du kannst die Registrierung über die PTypeInfo direkt machen. Da brauchst du keine GUID oder irgendetwas, der Pointer darauf reicht schon zur eindeutigen Identifizierung im Dictionary.
|
AW: Classen Typinfo GUID & Generics. Nicht eindeutig identifizierbar?
Zitat:
NB :ich brauche halt eine eindeutige - und am besten bereits automatisierte - Identifizierung, ohne dass ich jetzt ZB irgendwelche hash Funktionen dazugeben muss Hält das auch bei generics Stand? Müsste ja eigentlich denn tbla<x> ist ja ein anderer Typ als tbla<y> soweit ich weiß... Also auch andere typinfo |
AW: Classen Typinfo GUID & Generics. Nicht eindeutig identifizierbar?
Zitat:
Uwes Antwort dagegen schießt einen sinnvolle Verwendung jedoch aus, wenn das nur für Interfaces mit einer *echten * GUID hinterlegt ist |
AW: Classen Typinfo GUID & Generics. Nicht eindeutig identifizierbar?
Zitat:
Das funktioniert nur bei den diversen Typaliasen der einfachen Typen nicht. Zum Beispiel ist TDateTime ja eigentlich nur ein Fließkommawert und hat daher auch dessen Typinfo. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 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