pointer->res.a
в порядке, но поведение pointer->res.b
не определено.
Может быть произвольное количество отступов между a
и b
членами.
Некоторые компиляторы позволяют вам указать, что между членами нет заполнения, но, конечно, вы отказываетесь от переносимости.
Спасибо за ответы. Было бы хорошо смочь вынудить классы, полученные из интерфейса реализовать сериализацию без этого, затем принуждение их к пользовательскому сериализирует, но это, кажется, не возможно.
Если Вы хотите использовать сериализацию по умолчанию затем, необходимо добавить SerializableAttribute. Одна альтернатива должна была бы использовать абстрактный класс вместо интерфейса, затем добавить SerializableAttribute к абстрактному классу. При реализации собственной сериализации затем, Вы хотите реализовать ISerializable, иначе придерживаться SerializableAttribute.
Кажется, нет способа сделать это, но мне жаль, что не было.
Отметьте две вещи хотя:
Сериализуемый атрибут не может быть наследован от базового класса, даже если базовый класс отмечен как краткий обзор.
Вам технически не нужен сериализуемый атрибут при использовании XmlSerializer, потому что он не использует графы объектов.
Вы могли записать, что пользовательский FxCop управляет и проверяет регистрации против него.