2. 间接继承的类,比如:TMyField = class(TRemoteable); TMyStringField = class
(TMyField),直接传递这个类的对象给客户端,也没问题。但如果传递这个类的数组给客户端,TMyFieldArray = array
of TMyField; 把一个有多个元素的 TMyFieldArray 传递给客户端,里面的元素是子类 TMyStringField,客户端
可以读到传递过来的对象,但读取对象的属性值时,只能读到父类的属性值,子类实现的属性值读不到。观察由服务器端传递过来的 XML 内容,可以看到
XML 里有子类实现的属性的值。
解决此问题:向系统注册子类。注册语句:
initialization
RemClassRegistry.RegisterXSClass(TRmStringField, 'http://
www.code6421.com/XMLSchema', 'TRmStringField',''); //间接继承 TRemotable 的子
类。
RemTypeRegistry.RegisterXSInfo(TypeInfo(TRmFields),'http://
www.code6421.com/XMLSchema','TRmFields'); //数组类
finalization
RemClassRegistry.UnRegisterXSClass(TRmStringField);
RemTypeRegistry.UnRegisterXSInfo(TypeInfo(TRmFields));