解决方案 »
- 心跳包和通讯的问题
- 请教一个wcf的问题
- 完了,全白忙活了,用g.ScaleTransform修改PICTUREBOX的缩放比例后,画的线的线宽也跟着放大缩小了.
- 急,sql发邮件问题 马上结贴
- 俺是小虾,写个数组操作吧,有问题了,求助????
- 大家有什么功能超强的反编译器吗?
- 用什么在Winform中保存连接数据库的信息
- 水晶报表的问题 CrystalReport打印多个报表 子报表打印 页数很多
- 请教高手一个有关数据库更新的问题
- 在线等!!!着急!!!
- 一段完整网络报文怎么用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); }
也就是说反序列化一个类的时候是一定会先执行一遍该类构造函数才执行反序列化函数么?我的意思是说就是因为你加了那段代码才导致的这种现象,实际上只执行一次构造函数的,要不然问题就大了