1

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

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

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

当我序列化一个包含一些 PropertyEx 的 PropertyDataEx 列表时,它不会采用属性值,只是名称。

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);
}

在这种情况下,该值将是 "[{"__type":"Namespace.PropertyEx, Namespace","Name":"Niclas"}]"

您会看到属性 Value 丢失了。我怎样才能解决这个问题

4

1 回答 1

3

好的,找到它,要使其正常工作,PropertyDataEx 需要是抽象的。

于 2013-04-17T12:34:33.537 回答