ServiceStack.Text如何获取要序列化的子类值?

时间:2013-04-17 11:23:51

标签: c# json serialization servicestack

我有这两个类,例如,PropertyEx继承自PropertyDataEx

public class PropertyDataEx { public string Name { get; set; } }

public class PropertyEx : PropertyDataEx { public string Value { get; set; } }

当我在其中使用某些PropertyEx序列化PropertyDataEx列表时,它不会使用属性Value,只需要Name。

public void Serialize_Property_WillHaveValue() {

  var property = new PropertyEx()
  {Name = "Niclas", Value = "varde"};

  JsConfig.DateHandler = JsonDateHandler.ISO8601;
  JsConfig.ExcludeTypeInfo = false;
  JsConfig.IncludeTypeInfo = true;
  JsConfig.IncludeNullValues = true;
  JsConfig.PreferInterfaces = false;

  var list = new List<PropertyDataEx>();

  list.Add(property);

  var value = JsonSerializer.SerializeToString(list);
}

var property = new PropertyEx() {Name = "Niclas", Value = "varde"}; JsConfig.DateHandler = JsonDateHandler.ISO8601; JsConfig.ExcludeTypeInfo = false; JsConfig.IncludeTypeInfo = true; JsConfig.IncludeNullValues = true; JsConfig.PreferInterfaces = false; var list = new List<PropertyDataEx>(); list.Add(property); var value = JsonSerializer.SerializeToString(list); } 在这种情况下,值将是“[{”__ type“:”Namespace.PropertyEx,Namespace“,”Name“:”Niclas“}]”

你看到财产价值缺失了。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

好的,发现它,为了工作,PropertyDataEx需要是抽象的。