{"record":{"id":"3b21476e83dba2c5","repo":"dotnet/wpf","slug":"sr-notsupportedonunknownmember","errorCode":null,"errorMessage":"SR.NotSupportedOnUnknownMember","messagePattern":"SR\\.NotSupportedOnUnknownMember","errorType":"exception","errorClass":"NotSupportedException","httpStatus":null,"severity":"error","filePath":"src/Microsoft.DotNet.Wpf/src/System.Xaml/System/Xaml/Schema/XamlMemberInvoker.cs","lineNumber":159,"sourceCode":"                    result = (bool)shouldSerializeMethod.Invoke(instance, null);\n                }\n\n                return result ? ShouldSerializeResult.True : ShouldSerializeResult.False;\n            }\n\n            return ShouldSerializeResult.Default;\n        }\n\n        private bool IsUnknown\n        {\n            get { return _member is null || _member.UnderlyingMember is null; }\n        }\n\n        private void ThrowIfUnknown()\n        {\n            if (IsUnknown)\n            {\n                throw new NotSupportedException(SR.NotSupportedOnUnknownMember);\n            }\n        }\n\n        private class DirectiveMemberInvoker : XamlMemberInvoker\n        {\n            public override object GetValue(object instance)\n            {\n                throw new NotSupportedException(SR.NotSupportedOnDirective);\n            }\n\n            public override void SetValue(object instance, object value)\n            {\n                throw new NotSupportedException(SR.NotSupportedOnDirective);\n            }\n        }\n    }\n\n    public enum ShouldSerializeResult","sourceCodeStart":141,"sourceCodeEnd":177,"githubUrl":"https://github.com/dotnet/wpf/blob/81131a70a4c573cd62748a5c36908fc4d662daa9/src/Microsoft.DotNet.Wpf/src/System.Xaml/System/Xaml/Schema/XamlMemberInvoker.cs#L141-L177","documentation":"XamlMemberInvoker.ThrowIfUnknown is a private guard: when the invoker belongs to XamlMember.UnknownInvoker (an unknown/unresolvable member), GetValue and SetValue throw NotSupportedException with SR.NotSupportedOnUnknownMember. Operations are meaningless on a member that could not be resolved.","triggerScenarios":"Calling GetValue/SetValue on XamlMember.UnknownMember's invoker (XamlMemberInvoker.UnknownInvoker), i.e. the member came from XamlType.GetMember for a name that does not exist or a type that failed to resolve.","commonSituations":"Typos in member names when doing dynamic XAML member access; look-ahead code probing optional members on types from assemblies that failed to load; schema lookups in partial-trust or trimmed deployments where the type is missing.","solutions":["Verify the member exists before use: `if (member != XamlMember.UnknownMember)` or compare `ReferenceEquals(member.Invoker, XamlMemberInvoker.UnknownInvoker)`.","Fix the member name / ensure the declaring type's assembly is referenced and loadable in the schema context.","Catch NotSupportedException and treat the member as absent if probing is intentional."],"exampleFix":"// before\nvar member = type.GetMember(\"TargetName\"); // typo → UnknownMember\nvar value = member.Invoker.GetValue(obj); // NotSupportedException\n// after\nvar member = type.GetMember(\"TargetName\");\nif (member is null || ReferenceEquals(member.Invoker, XamlMemberInvoker.UnknownInvoker))\n    return; // member not resolvable\nvar value = member.Invoker.GetValue(obj);","handlingStrategy":"type-guard","validationCode":"bool usable = !ReferenceEquals(member, XamlMember.UnknownMember) && !ReferenceEquals(member.Invoker, XamlMemberInvoker.UnknownInvoker);","typeGuard":"static bool IsKnownMember(XamlMember m) => !ReferenceEquals(m.Invoker, XamlMemberInvoker.UnknownInvoker);","tryCatchPattern":"try { v = invoker.GetValue(instance); }\ncatch (NotSupportedException ex) when (ex.Message.Contains(\"unknown\")) { /* unresolved member: treat as absent */ }","preventionTips":["Always compare lookup results against XamlMember.UnknownMember","Ensure referenced assemblies are available to the XamlSchemaContext","Log unresolved member names at the lookup site instead of failing later"],"tags":["wpf","system-xaml","not-supported-exception","unknown-member"],"backgroundTag":"unsupported-operation","analyzedSha":"81131a70a4c573cd62748a5c36908fc4d662daa9","analyzedAt":"2026-09-14T10:12:48.479Z","contentChangedAt":"2026-09-14T10:12:48.479Z","schemaVersion":2},"datasetVersion":"2026-09-21T21:30:21.729Z"}