unoplatform/uno · error · NotSupportedException
Current operation is invalid for unknown member.
Error message
Current operation is invalid for unknown member.
What it means
Thrown by XamlMemberInvoker.ThrowIfUnknown when an operation (GetValue/SetValue) is attempted on an invoker whose member field is null — i.e. the UnknownInvoker singleton or a default-constructed invoker. Unknown members have no backing CLR member to get or set, so the operation is meaningless.
Source
Thrown at src/SourceGenerators/System.Xaml/System.Xaml.Schema/XamlMemberInvoker.cs:61
if (member == null)
throw new ArgumentNullException ("member");
this.member = member;
}
XamlMember member;
public MethodInfo UnderlyingGetter {
get { return member != null ? member.UnderlyingGetter : null; }
}
public MethodInfo UnderlyingSetter {
get { return member != null ? member.UnderlyingSetter : null; }
}
void ThrowIfUnknown ()
{
if (member == null)
throw new NotSupportedException ("Current operation is invalid for unknown member.");
}
public virtual object GetValue (object instance)
{
ThrowIfUnknown ();
if (instance == null)
throw new ArgumentNullException ("instance");
if (member is XamlDirective)
throw new NotSupportedException (String.Format (CultureInfo.InvariantCulture, "not supported operation on directive member {0}", member));
if (UnderlyingGetter == null)
throw new NotSupportedException (String.Format (CultureInfo.InvariantCulture, "Attempt to get value from write-only property or event {0}", member));
return UnderlyingGetter.Invoke (instance, Array.Empty<object>());
}
public virtual void SetValue (object instance, object value)
{
ThrowIfUnknown ();
if (instance == null)
throw new ArgumentNullException ("instance");View on GitHub (pinned to 0418340488)
Solutions
- Check member.IsUnknown (or invoker == XamlMemberInvoker.UnknownInvoker) before calling GetValue/SetValue and skip or log unknown members.
- Fix the underlying resolution: declare the member, register the attached property, or correct the XAML namespace.
- Use a custom XamlMemberInvoker subclass that supplies a sensible behavior for unknown members.
Example fix
// before
invoker.SetValue(instance, value); // throws if unknown
// after
if (member.IsUnknown)
logger.LogWarning($"Skipping unknown member {member}");
else
invoker.SetValue(instance, value); Defensive patterns
Strategy: type-guard
Validate before calling
if (member.IsUnknown || invoker == XamlMemberInvoker.UnknownInvoker)
{
logger.LogWarning($"Skipping unknown member {member}");
return;
}
invoker.SetValue(instance, value); Type guard
static bool IsKnownMember(XamlMember m) => m != null && !m.IsUnknown;
Prevention
- Always check member.IsUnknown before invoking get/set.
- Resolve unknown members by fixing the schema context (namespace, attached-property registration).
- Log unknown members during XAML load to catch resolution failures early.
When it happens
Trigger: Calling GetValue or SetValue on XamlMemberInvoker.UnknownInvoker, or on an invoker created via the protected parameterless constructor. Triggered when a XamlMember was unknown and its Invoker defaulted to UnknownInvoker.
Common situations: XAML containing members that did not resolve against the schema context (typo, missing reference, attached property not registered); generic XAML processors that blindly invoke every member.
Related errors
- member
- instance
- not supported operation on directive member {0}
- Attempt to get value from write-only property or event {0}
- serviceProvider does not implement IXamlNameResolver
AI-assisted analysis of unoplatform/uno@0418340488 (2026-08-13).
Data as JSON: /api/errors/4247fc3869f1698f.
Report an issue: GitHub.