Я просто заменил предыдущую сборку protobuf-net, которую использовал в своей кодовой базе (версия 2.0.0.480), на последнюю сборку (версия 2.0.0.580), поскольку в последняя версия protobuf, я ссылаюсь на полную DLL net30 в своих проектах.
При попытке сериализовать сложный тип, который включает System.Xml.Linq.XElement, я получаю InvalidOperationException от сериализатора protobuf - в сообщении об исключении говорится: «Сериализатор не определен для типа: System.Xml.Linq.XElement»
Я предполагаю, что отсутствие сериализатора для XElement связано с отсутствием сборки .Net 4.0 (поскольку в моем проекте я ссылаюсь на v4.0.30319 System.Xml.Linq.dll).
Мой проект нацелен на платформу .NET 4.5 — он отлично работает при ссылке на сборку protobuf-net V2.0.0.480 net40.