我正在使用 json.net 来存储我希望人们能够在文本编辑器中编辑的序列化对象。我有一个包含对象名称的基类,然后是一个继承自该对象并添加一些其他属性的类。
问题是属性被写出,因此派生类属性首先被写入,然后是基类 afetr,所以我得到:
{
"MySpecialFiled": 4,
"Name": "This Is My Object",
"AnotherBaseField": 8,
}
而不是:
{
"Name": "This Is My Object",
"AnotherBaseField": 8,
"MySpecialFiled": 4,
}
当您在派生类中有一堆字段并且想要在文本编辑器中实际查看/编辑时,您会看到这有点痛苦!
我特别弄乱了源代码:
public static IEnumerable<FieldInfo> GetFields(Type targetType, BindingFlags bindingAttr)
和
public static IEnumerable<PropertyInfo> GetProperties(Type targetType, BindingFlags bindingAttr)
在 ReflectionUtils.cs 中,尝试颠倒顺序,以便基类属性排在第一位,但我还没有取得任何成功。我错过了一些微不足道的事情吗?