1

たとえば、これら2つのクラスがあります.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 に答える