Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 架构和序列化建议_C#_.net_Serialization - Fatal编程技术网

C# 架构和序列化建议

C# 架构和序列化建议,c#,.net,serialization,C#,.net,Serialization,我需要一些架构方面的帮助,我认为我所做的未必是最好的方法 注意事项: 这不是一个特定于android的问题。 然而,Android确实要求我需要在“屏幕”上序列化对象。 考虑以下几点: 我目前正在为android开发一款游戏,其中需要在不同的屏幕之间传递一个角色类。为了做到这一点,我需要序列化对象。考虑到需要不同类型的字符,我想创建一个类,为每个字符继承。这里有静态字符,我想从Character类继承,并在构造函数中设置默认值,如“Name”和“Description” 目前的执行情况: 我正在

我需要一些架构方面的帮助,我认为我所做的未必是最好的方法

注意事项:

这不是一个特定于android的问题。 然而,Android确实要求我需要在“屏幕”上序列化对象。 考虑以下几点:

我目前正在为android开发一款游戏,其中需要在不同的屏幕之间传递一个角色类。为了做到这一点,我需要序列化对象。考虑到需要不同类型的字符,我想创建一个类,为每个字符继承。这里有静态字符,我想从Character类继承,并在构造函数中设置默认值,如“Name”和“Description”

目前的执行情况:

我正在传递序列化的子类对象。例如:具有字符基的UserCharacter理想情况是,我能够将对象作为基类进行反序列化,但在我看来这似乎不起作用。目前唯一可行的解决方案是在尝试序列化时执行以下操作:

new XmlSerializer(typeof (Character, new [] { typeof(CharacterUser)}));
这允许我传入多个子类型。但是,从长远来看,这是不可行的,因为这只意味着在我的应用程序中重复代码,并且每次创建新的字符子类时,我都需要在需要反序列化的任何时候添加它。我宁愿让代码在我离开的地方编写和工作,让它做自己的事情。我相信你能理解

我尝试过的另一件事是在character对象上使用IXmlSerializable,并独立地处理读写操作。然而,我认为这需要执行一个列表才能正常工作?目前,我的ReadXml从未被调用。好主意,但到目前为止对我不起作用

有人有什么想法我可以试试吗


我认为这是一个相当开放的问题,如果我需要稍微改变范围,请告诉我。

如果与andriod无关,最好去掉标签。此外,本文还可以提供帮助:-类似的父子问题。@mikalai更新了标记。我最初用那篇文章来创建我现在得到的东西。两者的区别似乎是一个列表的实现。但是,我没有列表,ReadXml不会被调用。我不是100%确定,因为这似乎有点奇怪。然而,我还希望有其他我没有想到的想法。我不确定我是否走上了正确的道路,并且使一切都变得过于复杂。@Andrey,那会很有效是的,不幸的是,我使用的是Monodroid,它允许我使用c。Monodroid中目前没有使用Parcelable。