【发布时间】:2013-06-19 01:29:41
【问题描述】:
假设我有一个示例类助手
TSampleClassHelper = class helper for TSampleClass
public
procedure SomeHelper;
end;
我执行以下操作:
var
obj :TSampleClass;
begin
obj:=TSampleClass.Create;
obj.SomeHelper;
end;
这按预期工作。
但是我怎样才能使用 RTTI 来调用辅助方法呢?以下似乎不起作用,GetMethod 返回 nil。
var
obj :TSampleClass;
ctx :TRTTIContext;
rtype :TRTTIType;
rmethod :TRTTIMethod;
begin
obj:=TSampleClass.Create;
rtype:=ctx.GetType(obj.ClassType);
rmethod:=rtype.GetMethod('SomeHelper'); // rmethod is nil !
end;
RTTI 不适用于类助手中定义的方法吗?反正有这个吗?
谢谢。
【问题讨论】:
-
我明白了,但在我的真实代码中,我正在针对任意对象测试“SomeMethod”。我不知道对象是否具有通过帮助程序定义的方法。所以我猜它不适用于通过类助手定义的“SomeMethod”。哦,好吧。
标签: delphi rtti class-helpers