【发布时间】:2014-08-28 21:02:52
【问题描述】:
XmlSerializer 不会序列化只读字段、只读属性(仅限getter)、私有字段等。此外,如果类没有无参数构造函数,它也不会序列化对象。我的问题:
AFAIK 出现这些问题是因为在反序列化时无法访问(和更改)私有(和只读)字段。但是如果我不反序列化怎么办?我没有这个选项吗?
由于同样的原因(反序列化问题),如果类没有无参数构造函数,它不会序列化对象。但是当我添加一个私有无参数构造函数时,它工作正常。怎么样?
我不喜欢为每个类添加一个无参数的构造函数,并且为了能够序列化它而将所有字段设为公共和非只读。现在我在私有无参数构造函数中抛出异常以防止使用。构造函数是否有一个属性告诉编译器只能对该构造函数进行授权调用?如果不是,至少我想用一个属性标记它,如果它被调用就会抛出异常。
【问题讨论】:
-
1,2) 我认为原因是点 od 序列化是稍后的反序列化。这就像你想在你的旅行行李里放一些东西,即使你知道机场安检不会把它还给你。 3)你所说的“授权”电话是什么意思?来自类本身的调用?
-
@KamilT 通过“授权调用”我的意思是,例如,仅允许(或根本不允许)来自特定方法的调用。对于这个问题
Obsolote解决了我的问题。
标签: c# attributes xml-serialization