コードベース(バージョン2.0.0.480)で使用していた以前のprotobuf-netビルドを最新のビルド(バージョン2.0.0.580)に置き換えました-.Net4.0または.Net4.5に対する特定のビルドがないため最新のprotobufバージョンでは、プロジェクトでnet30フルdllを参照しています。
System.Xml.Linq.XElementを含む複合型をシリアル化しようとすると、protobufシリアライザーからInvalidOperationExceptionが発生します-例外メッセージには、「型にシリアライザーが定義されていません:System.Xml.Linq.XElement」と表示されます。
XElementのシリアライザーがないことは、.Net 4.0ビルドがないことに関連していると思います(プロジェクトでSystem.Xml.Linq.dllのv4.0.30319を参照しているため)。
私のプロジェクトは.NET4.5プラットフォームを対象としています。protobuf-netV2.0.0.480net40ビルドを参照する場合は正常に機能します。