可能重复:
Using Json.net - partial custom serialization of a c# object
我有一个类,当我使用asp.net MVC 4 WebAPI时,我成功地在json.net中进行序列化。该类有一个属性,它是一个字符串列表。
public class FruitBasket {
[DataMember]
public List<string> FruitList { get; set; }
public int FruitCount {
get {
return FruitList.Count();
}
}
}
在我的Get方法中,序列化发生正常,我得到一个空数组,即[],用于我的JSON中的FruitList属性。如果我在PUT请求的主体中使用相同的json,则在反序列化期间在FruitCount属性中出现错误,因为FruitList为null。
我想要FruitList属性(基本上是我的get属性)来序列化但不反序列化。是否有可能通过设置或其他明智的json.net?
答案 0 :(得分:0)
我意识到这不会回答你的问题,但会解决生成的错误,因此可能会担心自定义序列化无关紧要
对FruitList使用私有变量,在get和in集合中返回它,如果value为null,则将私有变量设置为等于新列表。
public class FruitBasket
{
private List<string> _fruitList;
[DataMember]
public List<string> FruitList
{
get
{
return _fruitList;
}
set
{
if (value == null)
{
_fruitList = new List<string>();
}
else
{
_fruitList = value;
}
}
}
public int FruitCount
{
get
{
return FruitList.Count();
}
}
}