¿Hay alguna manera de explorar las propiedades de una interfaz con Rtti?Delphi Rtti: Explore las propiedades de las interfaces?
El código siguiente no funciona:
procedure ExploreProps;
var
Ctx: TRttiContext;
RttiType: TRttiType;
RttiProp: TRttiProp;
begin
RttiType := Ctx.GetType(TypeInfo(IMyInterface));
for RttiProp in RttiType.GetProperties do
Writeln(RttiProp.ToString);
end;
Alguien ha una solución de cómo hacer esto correctamente?
Ok, pero la exploración de un métodos de interfaces no funciona bien ... Justo reemplazó el ciclo for utilizando RttiType.GetMethods, todavía no hay resultados. –
@Christian: Acabo de ver el código del sistema RTTI, y muchas interfaces en las bibliotecas estándar están configuradas sin RTTI generado para ellas. No estoy seguro de cuáles son las reglas para generar RTTI extendido para tipos de interfaz, ya que parece ser diferente de generar RTTI extendido para clases o registros. ¿Tal vez Barry Kelly o Allen Bauer podrían responder este? –
Un tipo de interfaz debe tener '{M +}' aplicado para que 'TRttiType.GetMethods()' informe los métodos de la interfaz. –