Einzelnen Beitrag anzeigen

normancz

Registriert seit: 28. Mär 2008
6 Beiträge
 
Delphi 2010 Professional
 
#1

Generische Interfaces erkennen

  Alt 23. Mär 2012, 10:52
Delphi-Version: 2010
Hallo,
wie kann ich gezielt generische Interfaces abfragen?

Beispiel:
Delphi-Quellcode:
  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;
Supports funktioniert hier nicht, da beide Fälle wohl anhand der gemeinsamen GUID durchlaufen werden.

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
  Mit Zitat antworten Zitat