{"record":{"id":"8a37d190e379d1ba","repo":"unoplatform/uno","slug":"prefixlookup","errorCode":null,"errorMessage":"prefixLookup","messagePattern":"prefixLookup","errorType":"exception","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"src/SourceGenerators/System.Xaml/System.Xaml.Schema/XamlTypeName.cs","lineNumber":168,"sourceCode":"\t\t\t}\n\n\t\t\tvar ret = new List<XamlTypeName> ();\n\t\t \tforeach (var s in l) {\n\t\t\t\tif (!TryParse (s, namespaceResolver, out tn))\n\t\t\t\t\treturn false;\n\t\t\t\tret.Add (tn);\n\t\t\t}\n\n\t\t\tresult = ret;\n\t\t\treturn true;\n\t\t}\n\n\t\tpublic static string ToString (IList<XamlTypeName> typeNameList, INamespacePrefixLookup prefixLookup)\n\t\t{\n\t\t\tif (typeNameList == null)\n\t\t\t\tthrow new ArgumentNullException (\"typeNameList\");\n\t\t\tif (prefixLookup == null)\n\t\t\t\tthrow new ArgumentNullException (\"prefixLookup\");\n\n\t\t\treturn DoToString (typeNameList, prefixLookup);\n\t\t}\n\n\t\tstatic string DoToString (IList<XamlTypeName> typeNameList, INamespacePrefixLookup prefixLookup)\n\t\t{\n\t\t\tbool comma = false;\n\t\t\tstring ret = \"\";\n\t\t\tforeach (var ta in typeNameList) {\n\t\t\t\tif (comma)\n\t\t\t\t\tret += \", \";\n\t\t\t\telse\n\t\t\t\t\tcomma = true;\n\t\t\t\tret += ta.ToString (prefixLookup);\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n","sourceCodeStart":150,"sourceCodeEnd":186,"githubUrl":"https://github.com/unoplatform/uno/blob/04183404888ea21b4e5bfa3493e8d5f15e972c3a/src/SourceGenerators/System.Xaml/System.Xaml.Schema/XamlTypeName.cs#L150-L186","documentation":"Thrown by XamlTypeName.ToString(IList<XamlTypeName>, INamespacePrefixLookup) when the `prefixLookup` argument is null. When rendering each type name to its prefixed form, the method calls LookupPrefix on the resolver, so a null prefix lookup cannot produce prefixes; it is rejected up front.","triggerScenarios":"Calling XamlTypeName.ToString(list, null); rendering a list to prefixed form without supplying an INamespacePrefixLookup.","commonSituations":"Formatting type names outside a XAML writer where no prefix table exists; refactors dropping the lookup; assuming the method tolerates null.","solutions":["Construct and pass a valid INamespacePrefixLookup (e.g. from a XamlXmlWriter's namespace table or a custom implementation) before formatting.","If you only need the brace-namespace form (no prefix), call each XamlTypeName.ToString() (parameterless) and join manually.","Null-check before calling and fail fast with context."],"exampleFix":"// before\nvar s = XamlTypeName.ToString(list, null);\n\n// after\n// no prefix table available: render brace-namespace form instead\nvar s = string.Join(\", \", list.Select(t => t.ToString()));","handlingStrategy":"validation","validationCode":"// before ToString with prefixes\nif (prefixLookup == null) {\n    // fall back to brace-namespace form\n    var s = string.Join(\", \", typeNameList.Select(t => t.ToString()));\n    return s;\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Construct an INamespacePrefixLookup from the writer's namespace table before formatting prefixed names.","When no prefix table is available, render the brace-namespace form via parameterless ToString."],"tags":["xaml","schema","serialization","type-name","argument-validation","namespace"],"backgroundTag":null,"analyzedSha":"04183404888ea21b4e5bfa3493e8d5f15e972c3a","analyzedAt":"2026-08-13T21:08:11.651Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}