Oli*_*Oli 4 .net c# datacontractserializer
使用DataContract中的以下两个数据成员然后使用DataContractSerializer,只有Name按预期序列化.我的问题是我反序列化文件."名称"被正确读取和加载,但由于"超时"不存在,我希望它保持默认的"TimeSpan.FromHours(12)".实际上发生了什么是DataContractSerializer分配一个值,但由于它没有分配值,它使用的时间跨度默认值为0.这个行为有什么问题吗?
private string _name;
[DataMember(Name = "Name")]
public string Name
{
get
{
return _name;
}
set
{
_name= value;
}
}
private TimeSpan _timeout = TimeSpan.FromHours(12);
public TimeSpan Timeout
{
get
{
return _timeout ;
}
set
{
_timeout = value;
}
}
Run Code Online (Sandbox Code Playgroud)
这是你的答案吗?
使用OnDeserialized
[OnDeserialized]
void OnDeserialized(StreamingContext context)
{
this._timeout = TimeSpan.FromHours(12);
}
Run Code Online (Sandbox Code Playgroud)
从此处设置使用DataContractSerializer时属性的初始值
| 归档时间: |
|
| 查看次数: |
2408 次 |
| 最近记录: |