На этой странице protobuf-net производительность DataContractSerializer
значительно выше, чем XmlSerializer
. Конечно, вы всегда должны тестировать свои собственные данные, но если вы хотите заменить XmlSerializer
, вы, скорее всего, найдете DataContractSerializer
как улучшение производительности.
Я не уверен, как DataContractSerializer
реализован внутри, но обычно сериализаторы высоко оптимизированы. Это особенно верно для DataContractSerializer
, поскольку это большая часть картины производительности для WCF. Сериализатор нередко генерирует код MSIL на лету. Когда это будет сделано, DynamicMethod
позволит вам (на удивление!) Обойти проверку видимости (см. MSDN ), так что вы сможете получить доступ к закрытым полям без отражения.
С MSDN :
При наличии достаточных разрешений безопасности,
реализован механизм сериализации
с помощью динамических методов можно получить доступ
частные и защищенные данные для включения
сериализация объектов, не созданных
создателем двигателя.