none
关于Xmlserializer反序列化 List中元素翻倍的问题 RRS feed

  • 问题

  • 如果我定义一个类Save

    public class Save
        {
            public List<SVec2d> eventLocations;
            public Player.PlayerPower playerPower;
            public Player.PlayerKeys playerKeys;
            public Save()
            {
                eventLocations = new List<SVec2d>();
                foreach (GameObject g in FindObjectsOfType<GameObject>())
                {
                    IGameEvent gameEvent = g.GetComponent<IGameEvent>();
                    if (gameEvent != null)
                    {
                        eventLocations.Add(new SVec2d(g.transform.position.x, g.transform.position.y));
                    }
                }
                playerPower = Player.power;
                playerKeys = Player.keys;
            }
        }

    并且把它序列化到一个xml文件

    那么在反序列化时 成员eventLocations中的元素会无故增加一倍,并且会出现不应该出现的元素。这些元素在XML文件中都没有体现,而在反序列化的过程中出现了。

    但是如果把这个class改为struct问题就解决了。有人知道为什么吗?请求解答。


    2016年9月24日 7:13

答案

全部回复