При сериализации объекта любого типа, если свойство этого объекта имеет определенное название, то необходимо добавить дополнительное поле и здать ему значение.
Пример:
class MyClass
{
public object Item;
}
Должен получиться следующий json
{
"Item" : {},
"Item_Type" : "123"
}
А также необходимо при десериализации имзенять значение Item в зависимости от Item_Type, который не описан классом и есть только в json'е
Такие объекты могут быть вложенными, содержаться в массивах и таких типов очень много. Поэтому настраивать сериализацю атрибутом для каждого поля не самый оптимальный вариант
Используется сериализатор newton JSON.net