![]() |
1
1
不能在运行时更改字段的类型。 也就是说,如果你想这样做的话,为什么不能直接延长员工的工作时间呢? Polymorphism |
![]() |
2
1
嗯,我不完全确定它是否适合你的情况,但看看我的答案
this question
. 您可以从Decorable派生您的部门和员工类,并从Decorable派生SpecialDivision和SpecialEmployee
|
![]() |
3
1
我不知道您现在是否可以这样做,但是整个对象结构应该使用接口而不是具体的类。 |
![]() |
4
1
大多数序列化框架(如XmlSerializer和BinaryFormatter)提供了以自定义方式反序列化流的方法,因此您可以更新/新建层次结构并将旧流反序列化到其中。你在使用什么样的序列化框架? |
![]() |
5
1
为什么不能使用源代码进行反序列化,以便在运行时实例化所需的类? |
|
6
1
当XML将实际对象类型声明为:
至少当从声明的类型(这里是Employee[]Employees)延迟时,XMLSerializer在反序列化时很好地支持多态性,因为它将创建一个Name=“Carol”和Degree=“Chief”的SpecialEmployee;给定的SpecialEmployee是从Employee派生的,XMLSerializer会被告知这一点。
|
![]() |
7
0
一种可能的解决方案(假设选择的反序列化方法允许私有字段序列化): 使用问题中的方法1(即单独的层次结构)并将类的扩展版本存储在私有字段中。反序列化后,使用扩展版本更新常规公共非扩展字段,并包含返回这些字段的转换版本的方法。
|