J'essaie d'aller chercher une interface en utilisant D2010 RTTI.Delphi RTTI impossible de trouver l'interface
program rtti_sb_1;
{$APPTYPE CONSOLE}
{$M+}
uses
SysUtils,
Rtti,
mynamespace in 'mynamespace.pas';
var
ctx: TRttiContext;
RType: TRttiType;
MyClass: TMyIntfClass;
begin
ctx := TRttiContext.Create;
MyClass := TMyIntfClass.Create;
// This prints a list of all known types, including some interfaces.
// Unfortunately, IMyPrettyLittleInterface doesn't seem to be one of them.
for RType in ctx.GetTypes do
WriteLn(RType.Name);
// Finding the class implementing the interface is easy.
RType := ctx.FindType('mynamespace.TMyIntfClass');
// Finding the interface itself is not.
RType := ctx.FindType('mynamespace.IMyPrettyLittleInterface');
MyClass.Free;
ReadLn;
end.
Les deux IMyPrettyLittleInterface
et TMyIntfClass = class(TInterfacedObject, IMyPrettyLittleInterface)
sont déclarés dans mynamespace.pas
, en particulier
unit mynamespace;
interface
type
IMyPrettyLittleInterface = interface
['{6F89487E-5BB7-42FC-A760-38DA2329E0C5}']
end;
TMyIntfClass = class(TInterfacedObject, IMyPrettyLittleInterface)
end;
//...
Ne quelqu'un sait pourquoi cela ne fonctionne pas? Y a-t-il un moyen de résoudre mon problème? Merci d'avance!
Salut Robert! Merci pour votre réponse - cela fonctionne très bien! Cela semble étrange, cependant. Pour l'instant, je vais vivre avec une solution de contournement, mais j'espère que cela sera résolu dans le futur. Vous pensez que je devrais signaler au QC? – conciliator
Oui je pense qu'il devrait être QC'ed. –
Terminé. Il est maintenant signalé comme QC# 85277. – conciliator