Для будущих посетителей этого:
Более разумным решением было бы вообще не реализовывать этот метод в соответствующих классах и вместо этого использовать методы расширения:
public static class ExtendBaseApiModel
{
public static string ToJson(this T obj) { /* ... */ }
public static T FromJson<T>(this T obj, string json) where T : BaseApiModel { /* ... */ }
}
это позволит вам сохранить ваши классы красивыми и чистыми + свободными от затуманивания сериализации.
все же .. есть несколько слов, чтобы сказать
Как de -правильная сериализация
Предполагая, что это сделано для обеспечения настраиваемой сериализации внутри метода ToJson
и настраиваемой десериализации внутри метода FromJson
, тогда вам не следует использовать свои собственные странные методы, а скорее позволить инфраструктуре сделать это за вас..
Для Json.NET это должно быть сделано путем использования атрибута JsonConverter
в классе и реализации соответствующего JsonConverter где-то
Интересный факт
Комбинируя вариант методов расширения с упомянутым выше JsonConverter, вы сможете просто сериализовать каждый объект, просто вызвав myobjvar.ToJson(...)