解决方案 »
- 请问,这两行的原始值为什么不一样?
- C# 按钮触发
- 菜鸟急问:winform调用cmd命令的问题!!!!!
- c#结构体指针的问题
- datagridview 动态綁定列删除指定的行
- 着急:重新开一个帖子,关于两个List<string>比较的问题
- 今天上午发贴问同一台机子上的两个不同IP可不可以用同一个端口号,得到了肯定的答复.现在求一些这方面的例子或资料.
- 如何使用 XmlSerializer 序列化 Type 类型
- 窗口问题
- webbrowser 如何自动加载下一页呢
- 一段完整网络报文怎么用c#代码把不同层的报文头解析出来 如传输层 网络层 数据链路层
- 谁给我一个选中控件出现8个选框然后拉伸拖动控件功能的源码?
反序列化会自动将二进制数据反序列化成类,并自动创建一个新实例,那么创建了新实例,当然会走一遍构造函数了
<MainClass xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TestDeserialization">
<CL1>
<BL1>true</BL1>
<NUM1>1</NUM1>
</CL1>
<CL2>
<NUM2>2</NUM2>
<STR2>HELLO</STR2>
</CL2>
</MainClass>
我把STR2的内容改成上面后,程序还是打印的Class2string,这样子xml文件有什么用呢?
都只会调用一次构造函数
你去掉试试
[OnDeserializing()]
public void Initialize(StreamingContext context)
{
Initialize();//4
}
[OnDeserialized()]
public void Initialized(StreamingContext context)
{
Console.WriteLine(num2);//10
Console.WriteLine(str2); }
也就是说反序列化一个类的时候是一定会先执行一遍该类构造函数才执行反序列化函数么?我的意思是说就是因为你加了那段代码才导致的这种现象,实际上只执行一次构造函数的,要不然问题就大了