Я снова вынимаю волосы. Я работаю над возможными решениями по моему другому вопросу here. У меня есть этот класс:Как я могу сериализовать класс, который реализует IDictionary с Newtonsoft.JSON?
public class PartViewDTO : IDictionary<string, object>
{
...
}
Он строится с деталями, какие поля следует представлять - имя, партномер, цена и т.д. и т.п.
Я пытаюсь сериализации коллекцию PartViewDTO в качестве ответ для веб-службы, но я не хочу, традиционный словарь сериализации
[ { "Key": "Key1", "Value": "Value1" }, ...]
Вместо этого я хочу
{ "Key1": "Value1", ... }
Я попытался несколько вариаций на применение JsonDictionaryAttribute к этому классу:
[Newtonsoft.Json.JsonDictionary(ItemTypeNameHandling=Newtonsoft.Json.TypeNameHandling.Objects)]
public class PartViewDTO : IDictionary<string, object>
Но во время выполнения я получаю исключение брошенным, что «PartViewDTO не словарь»
Нижней линия - PartViewDTO является словарь, но я хочу, чтобы он сериализовался, как ключи в словаре, были свойствами класса. Я возвращаю IEnumerable < PartViewDTO> из этих веб-сервисов, поэтому я надеюсь, что атрибут, примененный к самому классу, подскажет JSON о том, как он должен быть сериализован.
Что я делаю неправильно?