我有一个抽象基类 ( BaseMessage
),它的方法SerializeProperties
将它的所有属性序列化为一个字节数组,并将它们保存在 type 的受保护变量中byte[]
。
从这个抽象基类 ( BaseCommandMessage
) 继承了一个类,它也是抽象的,并引入了更多属性。我希望这个类实现SerializeProperties
强制它序列化它的所有本地属性并将其添加到字节数组中。
之后,我有一个从抽象类 ( CommandMessage
) 继承的具体类,该类需要实现SerializeProperties
并将其属性序列化到字节数组。
这可以持续 X 代,但我想强制每个类都必须实现SerializeProperties
,我想在不使用反射的情况下完成所有这些。
此外,如果我有如下声明:
BaseMessage message = new CommandMessage();
message.SerializeProperties();
它应该依次序列化 BaseMessage 属性、BaseCommandMessage 属性,最后是 CommandMessage 属性。
即分别调用类的SerializeProperties
方法,BaseMessage
类的SerializeProperties
方法,BaseCommandMessage
最后调用类SerializeProperties
的方法CommandMessage
。
我希望这是有道理的!
谢谢
ps
我可以用一代来做到这一点,即在我的基类中,我有一个名为 SerializeMyProperties 的实现方法,它序列化它的所有属性,然后调用继承类可以实现的抽象或虚拟方法 SerializeProperties。这样它会序列化它自己的属性,然后序列化继承的类,但我不能超过 +2 代。