unoplatform/uno · error · ArgumentNullException

member

Error message

member

What it means

Thrown by the XamlMemberInvoker(XamlMember) constructor when the member argument is null. The invoker stores the member to back its UnderlyingGetter/UnderlyingSetter and to distinguish known from unknown members, so null is invalid.

Source

Thrown at src/SourceGenerators/System.Xaml/System.Xaml.Schema/XamlMemberInvoker.cs:44

using System.Reflection;

namespace Uno.Xaml.Schema
{
	public class XamlMemberInvoker
	{
		static readonly XamlMemberInvoker unknown = new XamlMemberInvoker ();
		public static XamlMemberInvoker UnknownInvoker {
			get { return unknown; }
		}

		protected XamlMemberInvoker ()
		{
		}

		public XamlMemberInvoker (XamlMember member)
		{
			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.");
		}

View on GitHub (pinned to 0418340488)

Solutions

  1. Use XamlMemberInvoker.UnknownInvoker (the static singleton) instead of constructing an invoker for an unknown/null member.
  2. Ensure the XamlMember passed in is non-null by validating the source lookup (e.g. XamlType.GetMember result).
  3. Guard with a null check and fall back to UnknownInvoker semantics.

Example fix

// before
var inv = new XamlMemberInvoker(resolvedMember); // throws if null

// after
var inv = resolvedMember != null
    ? new XamlMemberInvoker(resolvedMember)
    : XamlMemberInvoker.UnknownInvoker;
Defensive patterns

Strategy: validation

Validate before calling

var inv = member != null
    ? new XamlMemberInvoker(member)
    : XamlMemberInvoker.UnknownInvoker;

Type guard

static bool HasKnownMember(XamlMember m) => m != null;

Prevention

When it happens

Trigger: Constructing new XamlMemberInvoker(null) directly, or via a factory that produced a null XamlMember from an unresolved member lookup.

Common situations: Custom XAML schema contexts building invokers for members that failed to resolve; reflection-driven member creation where UnderlyingMember was null.

Related errors


AI-assisted analysis of unoplatform/uno@0418340488 (2026-08-13). Data as JSON: /api/errors/1410042327a3e6ee. Report an issue: GitHub.