我写了一个扩展方法,使用JSON
将对象序列化为Json.NET
public static string ToJson(this object value)
{
if (value == null)
{
return string.Empty;
}
var settings = new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
};
return JsonConvert.SerializeObject(value, Formatting.Indented, settings);
}
我有以下课程
[Serializable]
[DataContract]
public class BaseEntity
{
[DataMember]
public int Id { get; set; }
}
[Serializable]
public class MyEntity: BaseEntity
{
public string Name { get; set; }
}
当我运行以下代码时
var myEntity = new MyEntity{
Id = 1,
Name = "test"
};
Console.WriteLine(myEntity.ToJson());
输出为
{ “编号”:1 }
但我希望
{
“ Id”:1
“名称”:“ test”
}
当我评论[DataContract]
和[DataMember]
属性时,结果是预期的,但是有了这些属性,问题出在哪里?