{"record":{"id":"ed367c4a5b2246c6","repo":"dotnet/wpf","slug":"sr-reachserialization-noserializer-xpsomfixedpageserializer","errorCode":null,"errorMessage":"SR.ReachSerialization_NoSerializer","messagePattern":"SR\\.ReachSerialization_NoSerializer","errorType":"exception","errorClass":"XpsSerializationException","httpStatus":null,"severity":"error","filePath":"src/Microsoft.DotNet.Wpf/src/ReachFramework/Serialization/manager/XpsOMFixedPageSerializer.cs","lineNumber":358,"sourceCode":"        #region Private Methods\n\n        private\n        bool\n        SerializePageAsVisual(\n            Visual fixedPageAsVisual\n            )\n        {\n            bool needEndVisual = false;\n\n            ReachVisualSerializer serializer = new ReachVisualSerializer(SerializationManager);\n\n            if (serializer != null)\n            {\n                needEndVisual = serializer.SerializeDisguisedVisual(fixedPageAsVisual);\n            }\n            else\n            {\n                throw new XpsSerializationException(SR.ReachSerialization_NoSerializer);\n            }\n\n            return needEndVisual;\n        }\n\n        #endregion Private Methods\n\n        private XpsOMSerializationManager _xpsOMSerializationManager;\n    };\n}\n","sourceCodeStart":340,"sourceCodeEnd":369,"githubUrl":"https://github.com/dotnet/wpf/blob/81131a70a4c573cd62748a5c36908fc4d662daa9/src/Microsoft.DotNet.Wpf/src/ReachFramework/Serialization/manager/XpsOMFixedPageSerializer.cs#L340-L369","documentation":"XpsOMFixedPageSerializer.SerializePageAsVisual throws XpsSerializationException (SR.ReachSerialization_NoSerializer) when the packaging/serialization manager cannot supply a serializer for the fixed page as visual. The serializer lookup returned null, so the page cannot be written and the operation is aborted with this explicit error rather than a NullReferenceException.","triggerScenarios":"BeginPersistObjectData requests a serializer for a FixedPage-as-Visual and the manager's serializer factory (e.g. GetSerializer) returns null — typically for unsupported or unknown object types.","commonSituations":"Custom IXpsSerializationManager implementations that do not register a serializer for the given type; using XpsOM serializers with objects they do not recognize; partially initialized serialization managers.","solutions":["Ensure the serialization manager in use supports FixedPage/Visual types and provides a serializer for them","Register or implement a serializer for the object type in a custom packaging serialization manager","Verify the correct serializer stack (XpsOM vs classic XPS) is paired with the document being produced"],"exampleFix":"// before\nvar manager = new CustomSerializationManager(); // lacks FixedPage serializer\n// after\nvar manager = new XpsOMSerializationManager(packagingPolicy); // standard manager with registered serializers","handlingStrategy":"fallback","validationCode":"var serializer = manager.GetSerializer(typeof(FixedPage));\nif (serializer == null) throw new NotSupportedException(\"No serializer registered for FixedPage\");","typeGuard":"bool HasSerializer(IXpsSerializationManager m) => m?.GetSerializer(typeof(FixedPage)) != null;","tryCatchPattern":"try { pageSerializer.SerializeDisguisedVisual(visual); }\ncatch (XpsSerializationException ex) when (ex.Message.Contains(\"NoSerializer\")) { /* manager lacks a serializer for this type */ }","preventionTips":["Use the standard XpsOMSerializationManager rather than incomplete custom managers","Register serializers for all types you serialize","Match the XPS serializer flavor (XPS vs XpsOM) to the packaging policy"],"tags":["wpf","xps","serialization","missing-serializer"],"backgroundTag":"missing-dependency","analyzedSha":"81131a70a4c573cd62748a5c36908fc4d662daa9","analyzedAt":"2026-09-14T10:12:48.479Z","contentChangedAt":"2026-09-14T10:12:48.479Z","schemaVersion":2},"datasetVersion":"2026-09-22T01:17:13.364Z"}