Delphi2009 反射机制的使用
来源:互联网 发布:棋牌游戏源码修改软件 编辑:程序博客网 时间:2024/06/07 02:27
Delphi2009中添加了一个用于实现反射的单元,即ObjAuto,用它可以轻松的实现反射。
对于原本的RTTI,只能够得到published区分符下的属性,而反射机制则可以得到拥有反射支持的类的公开方法,成员变量和属性。
下面是一个小例子:
首先写一个拥有反射支持的类,注意类必须继承自TPersistent,并且类声明带有MethodInfo编译预处理。
MethodInfo是一个全新的预处理指令,它标识了指定的类能否支持反射。
{$MethodInfo+}
type
TTestClass = class(TPersistent)
public
procedure TestReflect(Astr: string);
function Test2: Integer;
end;
{$MethodInfo-}
然后我们写一点代码,用于获取类中的方法,注意必须要uses中添加ObjAuto单元
var
test : TTestClass;
mia : TMethodInfoArray;
mi : PMethodInfoHeader;
begin
test := TTestClass.Create;
try
mia := ObjAuto.GetMethods(test.ClassType);
for mi in mia do
ShowMessage(mi^.Name);
finally
test.Free;
end;
end;
这段代码即可把类中公开的方法都获取出来。如果有属性的话,也是一样。
获取到的方法,也可以进一步通过反射机制来调用。
对于原本的RTTI,只能够得到published区分符下的属性,而反射机制则可以得到拥有反射支持的类的公开方法,成员变量和属性。
下面是一个小例子:
首先写一个拥有反射支持的类,注意类必须继承自TPersistent,并且类声明带有MethodInfo编译预处理。
MethodInfo是一个全新的预处理指令,它标识了指定的类能否支持反射。
{$MethodInfo+}
type
TTestClass = class(TPersistent)
public
procedure TestReflect(Astr: string);
function Test2: Integer;
end;
{$MethodInfo-}
然后我们写一点代码,用于获取类中的方法,注意必须要uses中添加ObjAuto单元
var
test : TTestClass;
mia : TMethodInfoArray;
mi : PMethodInfoHeader;
begin
test := TTestClass.Create;
try
mia := ObjAuto.GetMethods(test.ClassType);
for mi in mia do
ShowMessage(mi^.Name);
finally
test.Free;
end;
end;
这段代码即可把类中公开的方法都获取出来。如果有属性的话,也是一样。
获取到的方法,也可以进一步通过反射机制来调用。
- Delphi2009 反射机制的使用
- Delphi2009 反射机制的使用
- 反射机制的使用
- Delphi2009,2010能使用的AES单元
- 【反射】反射机制的使用步骤
- java反射机制的使用
- Java反射机制的使用
- java 反射机制的使用
- 反射机制的简单使用
- java反射机制的使用
- Java反射机制的使用
- Java反射机制的使用
- Java反射机制的使用
- Java反射机制的使用
- java的反射机制使用
- java 的 反射机制的使用列子
- .net中的反射机制的使用
- java的反射机制使用漫谈
- Hibernate查询方法与缓存的关系
- POJ1012
- Delphi 操作 DTS
- 面向对象的JavaScript 四 ----- Javascript实现继承的方式(1)
- Oracle Audit
- Delphi2009 反射机制的使用
- 通过二级缓存来加速你的Hibernate应用程序
- propertygrid 里可以用的属性
- 译《Understanding Weak References》
- vs2008安装失败解决过程
- 通信原理第六版
- cmd命令
- 投出简历的第二天
- Global中防止SQL注入的方法