{"record":{"id":"fcdfc944d09fdb93","repo":"dotnet/wpf","slug":"cannot-find-the-appropriate-serializer-fcdfc9","errorCode":null,"errorMessage":"Cannot find the appropriate serializer.","messagePattern":"Cannot find the appropriate serializer\\.","errorType":"exception","errorClass":"XpsSerializationException","httpStatus":null,"severity":"error","filePath":"src/Microsoft.DotNet.Wpf/src/ReachFramework/Serialization/manager/NGCPageContentSerializerAsync.cs","lineNumber":135,"sourceCode":"            {\n                ReachSerializer serializer = SerializationManager.GetSerializer(fixedPage);\n\n                if(serializer!=null)\n                {\n                    NgcSerializationManagerAsync manager = SerializationManager as NgcSerializationManagerAsync;\n                    \n                    XpsSerializationPrintTicketRequiredEventArgs e = \n                        new XpsSerializationPrintTicketRequiredEventArgs(PrintTicketLevel.FixedPagePrintTicket,\n                                                         0);\n                    manager.OnNGCSerializationPrintTicketRequired(e);\n\n                    Toolbox.Layout(fixedPage, manager.GetActivePrintTicket());\n\n                    serializer.SerializeObject(fixedPage);\n                }\n                else\n                {\n                    throw new XpsSerializationException(SR.ReachSerialization_NoSerializer);\n                }\n            }\n\n        }\n\n        #endregion Internal Methods\n    };\n}\n","sourceCodeStart":117,"sourceCodeEnd":144,"githubUrl":"https://github.com/dotnet/wpf/blob/81131a70a4c573cd62748a5c36908fc4d662daa9/src/Microsoft.DotNet.Wpf/src/ReachFramework/Serialization/manager/NGCPageContentSerializerAsync.cs#L117-L144","documentation":"In SerializePage, NGCPageContentSerializerAsync looks up the serializer for the FixedPage type. If the serialization manager returns null (no serializer registered for FixedPage), it throws XpsSerializationException 'Cannot find the appropriate serializer'.","triggerScenarios":"Serializing a page where the manager's type map has no ReachSerializer for FixedPage (or the resolved type inside the PageContent is unrecognized).","commonSituations":"Custom or misconfigured NGCSerializationManagerAsync instances lacking the ReachFramework serializer mappings, or a PageContent containing an unexpected child object type.","solutions":["Use the standard ReachFramework serialization manager which has FixedPage serializer mappings","Register a serializer for the failing type","Verify the PageContent content is an actual FixedPage"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":"bool IsFixedPage(PageContent pc) => pc is PageContent;\n\n// and pre-check:\nbool serializerExists = manager.GetSerializerFor(typeof(FixedPage)) != null;","tryCatchPattern":"try\n{\n    manager.SaveAsXaml(pageContent);\n}\ncatch (XpsSerializationException ex) when (ex.Message.Contains(\"serializer\"))\n{\n    // ensure FixedPage serializer mapping exists on the manager\n}","preventionTips":["Use the default ReachFramework serializer mappings rather than a stripped-down manager","Confirm page content resolves to FixedPage before serializing"],"tags":["wpf","xps","serialization","missing-serializer"],"backgroundTag":"unsupported-operation","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"}