Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Text如何获取要序列化的子类值?_C#_Json_Serialization_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack - Fatal编程技术网 servicestack,C#,Json,Serialization,servicestack" /> servicestack,C#,Json,Serialization,servicestack" />

C# Text如何获取要序列化的子类值?

C# Text如何获取要序列化的子类值?,c#,json,serialization,servicestack,C#,Json,Serialization,servicestack,我有这两个类,例如,PropertyEx继承自PropertyDataEx 公共类PropertyDataEx { 公共字符串名称{get;set;} } 公共类PropertyEx:PropertyDataEx { 公共字符串值{get;set;} } 当我序列化一个包含一些PropertyEx的PropertyDataEx列表时,它不会接受属性值,只接受名称 public void Serialize_属性_WillHaveValue(){ var property=newproper

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


公共类PropertyDataEx
{
公共字符串名称{get;set;}
}

公共类PropertyEx:PropertyDataEx { 公共字符串值{get;set;} }

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


public void Serialize_属性_WillHaveValue(){

var property=newpropertyEx()
{Name=“Niclas”,Value=“varde”};
JsConfig.DateHandler=JsonDateHandler.ISO8601;
JsConfig.ExcludeTypeInfo=false;
JsConfig.IncludeTypeInfo=true;
JsConfig.IncludeNullValues=true;
JsConfig.PreferInterfaces=false;
var list=新列表();
列表。添加(属性);
var value=JsonSerializer.SerializeToString(列表);
}
在本例中,值将为“[{”\uuu type:“Namespace.PropertyEx,Namespace”,“Name:“Niclas”}]”

您会看到缺少属性值。
如何修复此问题

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

的可能副本
  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);
}