【发布时间】:2013-08-17 14:18:29
【问题描述】:
如何将 tkEnumeration 作为 RTTI 参数传递给 Method.Invoke。
我试过了
TMyEnums = (tsEnum1, tsEnum2);
ParameterList : Array of TValue;
lTypeInfo : PTypeInfo;
lTypeInfo := TypeInfo(TMyEnums);
ParameterList[0] := TValue.FromOrdinal(lTypeInfo, Integer(tsEnum1));
Method.Invoke(Object, ParameterList);
失败了。 Method.Invoke 可以采用 tkEnumeration 参数吗? 即使它确实有效 - 在我的应用程序中运行时我不知道参数的类型,所以我无法获得 lTypeInfo;
有没有办法从TRttiParameter获取lTypeInfo?
我可以为 TRttiProperty 获取它,如下所示:
lTypeInfo := RTTIProperties[i].GetValue(SourceObject).TypeInfo
TRttiParameter 是否有等价物?
【问题讨论】:
-
请提供一个不起作用的完整示例,并添加您在运行时遇到的确切错误/异常。