首页 新闻 会员 周边

XmlSerializer的Serialize & Deserialize导致List<T>从null变成empty collection

0
悬赏园豆:10 [已关闭问题]

class:

  [Serializable]
    public class TestData
    {
        public List<string> Content { get; set; }
    }

test code:

            XmlSerializer xml = new XmlSerializer(typeof(TestData));            
            System.IO.MemoryStream stream = new System.IO.MemoryStream();
            xml.Serialize(stream, new TestData());
            stream.Position = 0;
            TestData o = xml.Deserialize(stream) as TestData;

这时发现o的Content竟然不是null,而是一个empty collection,有人解释一下,怎样才能让它Deserialize之后变成null呢?

Everlonely的主页 Everlonely | 初学一级 | 园豆:115
提问于:2010-08-10 13:41
< >
分享
其他回答(1)
0

用 string[] 就行,要是List<T>,还真没发现有啥办法,不过你可以用DataContractSerializer替换XmlSerializer.

Launcher | 园豆:45045 (高人七级) | 2010-08-10 14:47
谢谢!我也发觉string[]是行的,至于你提到的用DataContractSerializer,由于整个变动较大,暂时应该不会考虑。 此外,我发觉ArrayList也是不行的。
支持(0) 反对(0) Everlonely | 园豆:115 (初学一级) | 2010-08-10 16:51
0

用 string[] 可以,用 List<string> 不行。

eaglet | 园豆:17139 (专家六级) | 2010-08-10 14:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册