Folgender Code
Delphi-Quellcode:
program Project15;
{$APPTYPE CONSOLE}
{$R *.res}
uses System.Rtti;
type
TMyClass = class
public var someField: Integer;
public class var someClassField: Integer;
public procedure someProcedure(); virtual; abstract;
public class procedure someClassProcedure(); virtual; abstract;
end;
var
ctx: TRttiContext;
field: TRttiField;
method: TRttiMethod;
begin
TMyClass.Create(); // Damit der Compiler es nicht weg-optimiert...
ctx := TRttiContext.Create();
WriteLn('fields:');
for field in ctx.GetType(TMyClass).GetFields() do
WriteLn(field.Name);
WriteLn(sLineBreak, 'methods:');
for method in ctx.GetType(TMyClass).GetDeclaredMethods() do
WriteLn(method.Name);
readln;
end.
findet beide Methoden aber nur die Variable "someField", nicht aber "someClassField". Woran liegt das? Wie kann ich es finden?