用Delphi实现的动态代理

MSerializ单元定义并部分实现了一个基于RTTI的通用序列化机制。

IMSerializer:序列化器接口
通过实现此接口处理将数据序列化到具体的流中,可以是普通数据流,也可以是XML或其它任意类型的流。

IMSerializable:可序列化对象接口
实现此接口的对象可自行实现序列化。需要序列化器接口以进行具体的序列化操作。

TMStreamSerializer:序列化到普通数据流中的序列化器实现。
注意,要用_Release( )进行释放,用Free可能会有问题。

TMPropList:通过RTTI访问对象属性的列表。
GetVariantFromPointer
SetVariantToPointer
警告:如果类型为ShortString,默认其为ShortString[255],如果实际最大长度不足,则当设置超长的串时将可能导致Access Violation.

MDynPrxy单元定义并实现了一个通用动态代理。

IMInvocationHandler:调用Handler接口。
定义了Invoke的调用格式。

TMMethodInvocation:方法调用上下文。
内容包括IID,方法ID,参数,返回值。
注意,要用_Release( )进行释放,用Free可能会有问题。

TMDynamicProxy:动态代理类。

TMInterfaceInvoker:接口调用实现类。
通过RTTI进行Dispatch。

<p>
	详细的说明见本人关于Delphi动态代理的系列文章,将陆续发表于以下各网站:<br />
	http://mental.mentsu.com<br />
	http://blog.csdn.net<br />
	http://raptor.mblogger.cn</p>

<p>
	在此下载源程序:16KB(在新的<a href="/entry/21">Devotee</a>中,已经全面更新。--Aug.22-05)</p>