Я хочу создать визуальный студийный плагин, который автоматически аннотирует классы для сериализации.Например, для встроенного двоичного сериализатора я мог бы просто добавить [Serializable]
к объявлению класса, для WCF он мог бы добавить [DataContract]
к классу и [DataMember]
к членам и свойствам (я мог бы получить [KnownType]
информацию через отражениеи комментируйте, где это уместно).При использовании буферов протокола можно добавить атрибуты [ProtoContract]
, [ProtoMember]
и [ProtoInclude]
и так далее.Я предполагаю, что классы, на которых мы собираемся использовать это, безопасны для сериализации (поэтому там нет сокетов или несериализуемых вещей).Я хочу знать, что является более простым способом взять существующий кусок кода (или двоичный файл, если это проще) и добавить эти атрибуты, сохраняя при этом остальную часть кода без изменений.Я в порядке с выводом, являющимся исходным кодом или бинарным.
Мне приходит в голову идея использовать синтаксический анализатор C #, анализировать все, находить интересные элементы кода, комментировать их и записывать код обратно.Однако это кажется очень сложным, учитывая относительно небольшое количество изменений, которые я хочу внести в код.Есть ли более простой способ сделать это?