【发布时间】:2012-11-04 06:28:07
【问题描述】:
我有一个可序列化的类,我的类中的一个属性在 getter 中生成一个Guid。该属性不实现 setter,并且在序列化期间被忽略。为什么会这样?我是否总是必须实现一个 setter 才能序列化我的属性。
[Serializable]
public class Example
{
[XmlAttribute("id")]
public string Id
{
get
{
return Guid.NewGuid().ToString();
}
}
}
我尝试实现一个空的 setter,它被正确序列化了。
[Serializable]
public class Example
{
[XmlAttribute("id")]
public string Id
{
get
{
return Guid.NewGuid().ToString();
}
set {}
}
}
更新:
你能指出我应该如何定义值永远不会改变的属性或值是在内部生成的吗?
【问题讨论】:
-
第二个例子序列化正确......但是当你尝试反序列化它时会发生什么?
-
仅供参考,XML 序列化程序会忽略
[Serializable]。 -
@JohnSaunders 我不知道。
标签: c# .net xml-serialization