8
|
Stefan Steinegger · 技术社区 · 15 年前 |
![]() |
1
17
在反序列化期间,它(afaik)总是使用一个新对象(
完成。。。证明:
注意,对于msdn上的部分信任场景,这里有一些额外的说明, here . |
![]() |
2
3
我有一个类似的问题,我发现最好的解决方案是添加一些包装类,即管理需要序列化的包装类的实例。 我不确定合同上的确切签名。我用了serializableattribute,用它我看起来很渺小。像这样:
|
![]() |
3
0
你也许能朝着你想要的用途迈出一步 OnDeserializingAttribute . 但是,这可能只允许您设置属性(因此您可以拥有相当于使用静态实例填充当前实例的所有属性的复制方法)。 我想如果你真的想返回你的静态实例,你可能需要编写你自己的反序列化程序… 未经测试,但我假设您可以很容易地实现如下反序列化程序:
请注意,由于id在代码中是私有的,因此您必须对其进行一些处理;这也假设您使用的是xml序列化;将继承替换为实际使用的任何内容。最后,这意味着在反序列化对象时必须实例化此类型,这可能涉及更改某些代码和/或配置。 |
![]() |
4
0
没问题,只用两个班。在get object方法中,您可以获取现有的对象
然后,当反序列化时:
|