json.net を使用して、テキスト エディターで編集できるようにしたいシリアル化されたオブジェクトを格納しています。オブジェクトの名前を含む基本クラスと、それを継承して他のプロパティを追加するクラスがあります。
問題は、派生クラスのプロパティが最初に書き込まれ、次に基本クラスのプロパティが書き込まれるようにプロパティが書き出されることです。したがって、次のようになります。
{
"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で、基本クラスのプロパティが最初になるように順序を逆にしようとしましたが、まだ成功していません。些細なことを見逃していますか?