Предположим, у меня есть эти классы:
public class Bar
{
public Foo MyFoo { get; set; }
}
public class Foo
{
public string[] Stuff { get; set; }
}
И у меня есть такая структура JSON:
{
"MyFoo":
{
"Stuff":"those,are,my,stuff"
}
}
И у меня есть путь к коду, в который преобразуется JObject
Bar
используя код, подобный приведенному ниже:
myJObject.ToObject(typeof(Bar))
Теперь мне нужно предоставить ToObject
специальный сериализатор для преобразования строкового свойства Stuff
в массив строк (используя string.Split(...).ToArray()
)
Меня попросили не добавлять атрибуты в клиентский класс 'Bar', поэтому после просмотра мне показалось, что ContractResolver
в порядке, но проблема в том, что распознаватель позволяет мне обрабатывать только прямые свойства типа root, то есть Bar
в моем примере, и я не могу зарегистрировать JsonConverter
для вложенного свойства.
Так что мой вопрос к вам, ребята, является ли это достижимым? используя Json. net?
- Обратите внимание, что мне нужно сделать это не только для класса
Bar
, но и для неограниченного количества классов с неизвестной структурой, поэтому я не могу жестко написать решение, которое будет работать для одного типа класса.