我有一个普通的C#POCO.在班级,我正在装饰对象[Serializable()].
也就是说,我Sum()在其中一个属性上使用Linq ,并且在序列化时收到错误.如果可能的话,我想简单地忽略这个属性.但是,[XmlIgnore()]它仅用于Xml序列化,而不是二进制.任何想法或想法?
代码是这样的,我想忽略ValueTotal:
[Serializable()]
public class Foo
{
public IList<Number> Nums { get; set; }
public long ValueTotal
{
get { return Nums.Sum(x => x.value); }
}
}
Run Code Online (Sandbox Code Playgroud)
ata*_*ata 61
ValueTotal已经被忽略了.只序列化数据,而不是方法.属性实际上是方法.
如果您希望忽略字段而不是序列化它们,请将它们标记为[NonSerialized].
'要么'
您可以实现ISerializable而不是序列化这些字段.
下面是一些关于如何实现ISerializable和序列化数据的示例代码:http://www.c-sharpcorner.com/UploadFile/yougerthen/102162008172741PM/1.aspx
Hen*_*rik 35
[NonSerialized]
private IList<Number> nums;
public IList<Number> Nums { get {return nums;} set { nums = value; } }
Run Code Online (Sandbox Code Playgroud)
Sco*_*hic -15
作弊并使用方法
[Serializable()]
public class Foo
{
public IList<Number> Nums { get; set; }
public long GetValueTotal()
{
return Nums.Sum(x => x.value);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36869 次 |
| 最近记录: |