对XML序列化程序和混合可访问性属性感到困惑

时间:2014-12-23 19:14:00

标签: c#

我正在使用ApplicationSettingsBase来序列化一些设置,我希望有人可以解释这种令人困惑的行为。

所以,理想情况下这是我想要的代码块,但不起作用:

[DataMember]
public CustomClass TestProp { get; private set;}

如果我使用该代码块,则根本没有任何序列化,但不会生成异常。

因此,作为一种解决方法,我用以下内容替换了该代码块:

[IgnoreDataMember]
public CustomClass TestProp { get { return _TestProp; } }
[DataMember]
private CustomClass _TestProp  { get; set; }

使用该代码块,除了_TestProp属性没有被序列化之外,该类序列化了我期望的所有内容。

为了确保我没有疯狂,这应该有用,我添加了以下属性:

[DataMember]
public List<int> TestList1 { get; private set; }
[DataMember]
private List<int> TestList2 { get; set; }
[DataMember]
public CustomClass TestProp2 { get; set; }

并且所有这3个属性都按预期序列化。

现在我只是完全公开离开酒店并发表评论将其视为只读,但我想知道导致这种行为的原因。有人有任何想法吗?

0 个答案:

没有答案