{"record":{"id":"d04100dfccce7633","repo":"unoplatform/uno","slug":"namespacedeclaration","errorCode":null,"errorMessage":"namespaceDeclaration","messagePattern":"namespaceDeclaration","errorType":"exception","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"src/SourceGenerators/System.Xaml/System.Xaml/XamlWriterInternalBase.cs","lineNumber":154,"sourceCode":"\t\t}\n\n\t\tpublic void WriteGetObject ()\n\t\t{\n\t\t\tmanager.GetObject ();\n\n\t\t\tvar xm = CurrentMember;\n\n\t\t\tvar state = new ObjectState () {Type = xm.Type, IsGetObject = true};\n\n\t\t\tobject_states.Push (state);\n\n\t\t\tOnWriteGetObject ();\n\t\t}\n\n\t\tpublic void WriteNamespace (NamespaceDeclaration namespaceDeclaration)\n\t\t{\n\t\t\tif (namespaceDeclaration == null)\n\t\t\t\tthrow new ArgumentNullException (\"namespaceDeclaration\");\n\n\t\t\tmanager.Namespace ();\n\n\t\t\tnamespaces.Add (namespaceDeclaration);\n\t\t\tOnWriteNamespace (namespaceDeclaration);\n\t\t}\n\n\t\tpublic void WriteStartObject (XamlType xamlType)\n\t\t{\n\t\t\tif (xamlType == null)\n\t\t\t\tthrow new ArgumentNullException (\"xamlType\");\n\n\t\t\tmanager.StartObject ();\n\n\t\t\tvar cstate = new ObjectState () {Type = xamlType};\n\t\t\tobject_states.Push (cstate);\n\n\t\t\tOnWriteStartObject ();","sourceCodeStart":136,"sourceCodeEnd":172,"githubUrl":"https://github.com/unoplatform/uno/blob/04183404888ea21b4e5bfa3493e8d5f15e972c3a/src/SourceGenerators/System.Xaml/System.Xaml/XamlWriterInternalBase.cs#L136-L172","documentation":"XamlWriterInternalBase.WriteNamespace throws ArgumentNullException('namespaceDeclaration') when a null NamespaceDeclaration is written. The declaration (prefix+namespace pair) is added to the namespaces list and forwarded to OnWriteNamespace, so a null entry would corrupt the namespace manager.","triggerScenarios":"Calling WriteNamespace(null) directly, or passing a NamespaceDeclaration obtained from a reader that yielded null (e.g. a buggy custom XamlReader).","commonSituations":"Custom XamlReader implementations that emit null NamespaceDeclarations; pipeline code forwarding declarations without filtering nulls; tests asserting validation.","solutions":["Filter out or reject null NamespaceDeclaration before calling WriteNamespace.","If you control the reader, ensure it never yields null namespace nodes.","Use XamlServices.Transform which forwards reader nodes through the writer's own WriteNode dispatcher."],"exampleFix":"// before\nwriter.WriteNamespace(decl);\n\n// after\nif (decl != null) writer.WriteNamespace(decl);","handlingStrategy":"validation","validationCode":"if (namespaceDeclaration != null) writer.WriteNamespace(namespaceDeclaration);","typeGuard":"bool IsValid(NamespaceDeclaration? d) => d != null && !string.IsNullOrEmpty(d.Namespace);","tryCatchPattern":null,"preventionTips":["Filter null declarations in custom pipelines before forwarding to the writer.","Ensure custom XamlReaders never emit null NamespaceDeclaration nodes."],"tags":["xaml","argument-null","xamlwriter","namespace"],"backgroundTag":null,"analyzedSha":"04183404888ea21b4e5bfa3493e8d5f15e972c3a","analyzedAt":"2026-08-13T21:08:11.651Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}