{"record":{"id":"6ae6d6fc35eb7e12","repo":"unoplatform/uno","slug":"reader-6ae6d6","errorCode":null,"errorMessage":"reader","messagePattern":"reader","errorType":"exception","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"src/SourceGenerators/System.Xaml/System.Xaml/XamlWriter.cs","lineNumber":59,"sourceCode":"\t\t}\n\n\t\tvoid IDisposable.Dispose ()\n\t\t{\n\t\t\tDispose (true);\n\t\t}\n\n\t\tpublic abstract void WriteEndMember ();\n\t\tpublic abstract void WriteEndObject ();\n\t\tpublic abstract void WriteGetObject ();\n\t\tpublic abstract void WriteNamespace (NamespaceDeclaration namespaceDeclaration);\n\t\tpublic abstract void WriteStartMember (XamlMember xamlMember);\n\t\tpublic abstract void WriteStartObject (XamlType type);\n\t\tpublic abstract void WriteValue (object value);\n\n\t\tpublic void WriteNode (XamlReader reader)\n\t\t{\n\t\t\tif (reader == null)\n\t\t\t\tthrow new ArgumentNullException (\"reader\");\n\n\t\t\tswitch (reader.NodeType) {\n\t\t\tcase XamlNodeType.StartObject:\n\t\t\t\tWriteStartObject (reader.Type);\n\t\t\t\tbreak;\n\t\t\tcase XamlNodeType.GetObject:\n\t\t\t\tWriteGetObject ();\n\t\t\t\tbreak;\n\t\t\tcase XamlNodeType.EndObject:\n\t\t\t\tWriteEndObject ();\n\t\t\t\tbreak;\n\t\t\tcase XamlNodeType.StartMember:\n\t\t\t\tWriteStartMember (reader.Member);\n\t\t\t\tbreak;\n\t\t\tcase XamlNodeType.EndMember:\n\t\t\t\tWriteEndMember ();\n\t\t\t\tbreak;\n\t\t\tcase XamlNodeType.Value:","sourceCodeStart":41,"sourceCodeEnd":77,"githubUrl":"https://github.com/unoplatform/uno/blob/04183404888ea21b4e5bfa3493e8d5f15e972c3a/src/SourceGenerators/System.Xaml/System.Xaml/XamlWriter.cs#L41-L77","documentation":"XamlWriter.WriteNode(XamlReader) throws ArgumentNullException('reader') when the reader is null. WriteNode dispatches on reader.NodeType to forward each node to the corresponding Write* method, so a null reader has no node to read.","triggerScenarios":"Calling WriteNode with a reader variable that is null — often when manually looping nodes or when a custom pipeline passed null where a reader was expected.","commonSituations":"Hand-written node loops (instead of XamlServices.Transform) that pass a null reader; reader factories returning null on error; tests validating argument checks.","solutions":["Null-check the reader before calling WriteNode.","Prefer XamlServices.Transform(reader, writer) which handles the loop and validates arguments for you.","Ensure the reader factory throws rather than returns null."],"exampleFix":"// before\nwhile (!reader.IsEof) { writer.WriteNode(reader); reader.Read(); }\n\n// after\nif (reader == null) throw new ArgumentNullException(nameof(reader));\nXamlServices.Transform(reader, writer);","handlingStrategy":"validation","validationCode":"if (reader == null) throw new ArgumentNullException(nameof(reader));\nwriter.WriteNode(reader);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Prefer XamlServices.Transform over hand-written WriteNode loops — it validates and iterates for you.","Enable nullable reference types so a null reader is a compile-time warning."],"tags":["xaml","argument-null","xamlwriter"],"backgroundTag":null,"analyzedSha":"04183404888ea21b4e5bfa3493e8d5f15e972c3a","analyzedAt":"2026-08-13T21:08:11.651Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}