2014-11-16 2 views
3

Есть ли способ сделать сериализуемым объект во время выполнения? Должен ли я использовать Reflection?Сделать объект сериализуемым во время выполнения

Примечание: объект является частью внешней библиотеки, поэтому у меня нет исходного кода для него.

+0

Пожалуйста, объясните, что вы подразумеваете под «выполнением сериализации». Что именно ты пытаешься сделать? – CodeCaster

+0

добавьте атрибут [Serializable] в класс – Riccardo

+1

Теперь это конкретный вопрос, который вы можете найти. См. [Может ли атрибуты добавляться динамически в C#?] (Http://stackoverflow.com/questions/129285/can-attributes-be-added-dynamically-in-c). – CodeCaster

ответ

3

Т.Л., д-р - Нет

В то время как вы можете использовать TypeDescriptor, чтобы добавить атрибуты к чему-либо во время выполнения, в контексте Serializable приписывать это не поможет, так как BinaryFormatter использует классическое отражение и не TypeDesciptor отражения.

Идея этого атрибута заключается в том, что сериализуемый класс допускает сериализацию. Подробнее об этом here.

0

В зависимости от структуры вы можете использовать сериализатор, который не выбирает, т. Е. Не требует никакого атрибута в целевом классе, например XmlSerializer или JavaScriptSerializer.