Осуществление сериализуемого от интерфейса, не вызывая классы к пользовательскому сериализирует в C#

pointer->res.a в порядке, но поведение pointer->res.b не определено.

Может быть произвольное количество отступов между a и b членами.

Некоторые компиляторы позволяют вам указать, что между членами нет заполнения, но, конечно, вы отказываетесь от переносимости.

11
задан WillH 11 December 2008 в 17:34
поделиться

4 ответа

Спасибо за ответы. Было бы хорошо смочь вынудить классы, полученные из интерфейса реализовать сериализацию без этого, затем принуждение их к пользовательскому сериализирует, но это, кажется, не возможно.

0
ответ дан 3 December 2019 в 09:21
поделиться

Если Вы хотите использовать сериализацию по умолчанию затем, необходимо добавить SerializableAttribute. Одна альтернатива должна была бы использовать абстрактный класс вместо интерфейса, затем добавить SerializableAttribute к абстрактному классу. При реализации собственной сериализации затем, Вы хотите реализовать ISerializable, иначе придерживаться SerializableAttribute.

1
ответ дан 3 December 2019 в 09:21
поделиться

Кажется, нет способа сделать это, но мне жаль, что не было.

Отметьте две вещи хотя:

  • Сериализуемый атрибут не может быть наследован от базового класса, даже если базовый класс отмечен как краткий обзор.

  • Вам технически не нужен сериализуемый атрибут при использовании XmlSerializer, потому что он не использует графы объектов.

10
ответ дан 3 December 2019 в 09:21
поделиться

Вы могли записать, что пользовательский FxCop управляет и проверяет регистрации против него.

0
ответ дан 3 December 2019 в 09:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: