Мне интересно как исключить / удалить определенные свойства заданного типа (типов) (или их наборов) из сериализации с использованием библиотеки Json.NET?Я безуспешно пытался написать свой собственный обработчик контрактов (унаследованный от DefaultContractResolver ).
Я знаю, что это можно сделать с помощью DataAnnotations, украсив исключенные свойства с помощью ScriptIgnoreAttribute , но это не применимо в моем сценарии.Сериализованные объекты могут быть практически любыми, поэтому я не знаю, какие свойства исключить во время разработки.Я знаю только типы свойств, которые не должны быть сериализованы.
Это выглядит довольно простой задачей, но, к сожалению, я нигде не смог найти достойного решения ...
Кстати - Я не связан с библиотекой Json.NET - если это легко сделать с помощью стандартных / других сериализаторов .NET JSON, это было бы для меня не менее хорошим решением.
ОБНОВЛЕНИЕ
Свойства должны быть исключены перед попыткой их сериализации. Почему?
Как правило, типы объектов, которые я получаю и сериализирую, могут иметь динамические свойства типа, наследуемого от IDynamicMetaObjectProvider .Я не буду описывать все детали, но DynamicMetaObject , возвращенный из GetMetaObject метод этих объектов не имеет DynamicMetaObject.GetDynamicMemberNames метод реализован (бросает NotImplementedException ...). Подводя итог - проблема в том, что эти объекты (я должен исключить) не позволяют перечислять их свойства , что сериализатор Json.NET пытается сделать за кулисами.Я всегда получаю NotImplementedException брошенным.