![]() |
Delphi-Version: 2010
Generische Interfaces erkennen
Hallo,
wie kann ich gezielt generische Interfaces abfragen? Beispiel:
Delphi-Quellcode:
Supports funktioniert hier nicht, da beide Fälle wohl anhand der gemeinsamen GUID durchlaufen werden.
IFoo<T> = interface
['{CDCED5EE-852E-4C41-86A1-BE9E450A0748}'] function Bar: T; end; IStringFoo = IFoo<string>; IIntegerFoo = IFoo<integer>; ... procedure MachWas(x: IInterface); var sfoo: IStringFoo; svalue: string; ifoo: IIntegerFoo; ivalue: integer; begin if Supports(x, IStringFoo, sfoo) then svalue := sfoo.Bar; if Supports(x, IIntegerFoo, ifoo) then ivalue := ifoo.Bar; end; Ich benutze übrigens das Spring-Framework. Gibt es dort etwas passendes, denn anscheinend kann ich dort auch generische Interfaces problemlos registrieren und auch wieder anfordern? Danke, und Ciao Norman |
AW: Generische Interfaces erkennen
Zitat:
![]() |
AW: Generische Interfaces erkennen
Delphi-Quellcode:
So sollte/könnte es gehn.
IFoo<T> = interface
function Bar: T; end; IStringFoo = interface(IFoo<string>) ['{CDCED5EE-852E-4C41-86A1-BE9E450A0748}'] end; IIntegerFoo = interface(IFoo<integer>) ['{was anderes}'] end; Theoretisch könnte Emba hierfür einbauen, daß für generische Interfaces dieser Code implizit so verwendet würde. Und wenn dann noch für alle Interfaces ohne GUID eine GUID automatisch generiert wird/würde... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 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