У меня есть класс, наследуемый от JsonConverter: JsonDataBagCreationConverter<T> : JsonConverter where T : IDataBag
У меня есть класс Company, который реализует IDataBag
Когда я десериализую одно свойство компании JsonDataBagCreationConverter, вызывается метод ReadJson, как я и ожидал. Когда я десериализую массив Company, метод ReadJson JsonDataBagCreationConverter вызывается, как я и ожидал. Это также работает для общих списков Компании.
Но для некоторых контейнеров Company json.net не распознает, что содержимое списка относится к типу Company. Таким образом, JsonDataBagCreationConverter не используется при десериализации.
т.е. контейнеры типа System.Collections.DictionaryEntry, System.Collections.ArrayList, System.Collections.Hashtable, System.Collections.SortedList, в которых хранятся объекты Company.
Я знаю, что эти контейнеры не являются универсальными. Можно ли заставить (де-)сериализатор просматривать содержимое этих контейнеров и использовать JsonDataBagCreationConverter, когда содержимым является Idatabag (то есть компания)?
С наилучшими пожеланиями
Ян