我有一个抽象基类 ( 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 代。