我需要一些架构帮助,我认为我一直在做的可能不一定是最好的方法。
注意事项:
请考虑以下事项:
我正在开发一款Android游戏,其中一个角色类需要在不同的屏幕之间传递。为了做到这一点,我需要序列化对象。考虑到需要不同类型的字符,我想创建一个继承每个字符的类。我有静态字符的地方我想继承Character类并在构造函数中设置默认值,如'Name'和'Description'。
当前实施:
我正在传递序列化的子类对象。 (例如:具有Character字符的UserCharacter)理想的情况是我能够将对象反序列化为它的基类,但这似乎对我来说不起作用。我目前唯一可行的解决方案是在尝试序列化时执行以下操作:
new XmlSerializer(typeof (Character, new [] { typeof(CharacterUser)}));
这允许我传入多个子类型。然而,这在长期内是不可行的,因为它只是意味着我的应用程序中的代码重复以及每次创建新的字符子类时我需要在其中添加我需要反序列化的任何点。我宁愿让代码编写并在我离开它的地方工作以完成它自己的事情。我相信你能理解这一点。
我尝试过的另一件事就是在角色对象上使用IXmlSerializable并独立处理阅读和写作。我认为这需要实现列表才能正常工作?目前我的ReadXml永远不会被调用。 (好主意,但到目前为止它对我不起作用)
有人有任何想法我可以试试吗?
我认为这是一个非常开放的问题,如果我需要区别一点,请告诉我。