dotnet/wpf · error · ArgumentNullException
member
Error message
member
What it means
The public XamlMemberInvoker(XamlMember member) constructor requires a non-null XamlMember; passing null throws ArgumentNullException with the parameter name 'member'. A member invoker is meaningless without its owning member, so null is rejected up front.
Solutions
- Null-check the XamlMember before constructing the invoker and handle the 'member not found' case explicitly.
- Use the member's invoker directly: XamlMember.Invoker already exposes a correctly constructed XamlMemberInvoker.
- For the unknown-member sentinel case, use XamlMemberInvoker.UnknownInvoker instead of constructing one.
Example fix
// before
var invoker = new XamlMemberInvoker(type.GetMember(memberName)); // throws if memberName not found
// after
var member = type.GetMember(memberName);
if (member is null) { /* handle unresolved member */ return; }
var invoker = member.Invoker; Defensive patterns
Strategy: type-guard
Validate before calling
if (member is null) return; // or throw a domain-specific error
Type guard
static bool TryGetInvoker(XamlMember? m, out XamlMemberInvoker? invoker) { invoker = m?.Invoker; return invoker is not null; } Try / catch
try { var invoker = new XamlMemberInvoker(member); }
catch (ArgumentNullException ex) when (ex.ParamName == "member") { /* member lookup failed */ } Prevention
- Prefer member.Invoker over manual construction
- Enable nullable reference types so nullable XamlMember is visible at compile time
- Handle GetMember null returns immediately at the lookup site
When it happens
Trigger: Calling `new XamlMemberInvoker(null)`, e.g. when the member comes from a lookup that returned null (XamlType.GetMember miss) and the result is passed straight into the constructor.
Common situations: Custom XAML value serializers/MarkupExtension support code fetching a member then constructing its invoker; refactoring where a nullable member variable began being passed without a null check.
Related errors
- type
- ArgumentNullException
- ArgumentNullException(nameof(assemblyNames))
- ArgumentNullException(nameof(contentType))
- ArgumentNullException(nameof(loaderType))
AI-assisted analysis of dotnet/wpf@81131a70a4 (2026-09-14).
Data as JSON: /api/errors/e240fe307a92d416.
Report an issue: GitHub.
Appendix: source
Thrown at src/Microsoft.DotNet.Wpf/src/System.Xaml/System/Xaml/Schema/XamlMemberInvoker.cs:25
using System.Xaml.MS.Impl;
namespace System.Xaml.Schema
{
public class XamlMemberInvoker
{
private static XamlMemberInvoker s_Directive;
private static XamlMemberInvoker s_Unknown;
private XamlMember _member;
private NullableReference<MethodInfo> _shouldSerializeMethod;
protected XamlMemberInvoker()
{
}
public XamlMemberInvoker(XamlMember member)
{
_member = member ?? throw new ArgumentNullException(nameof(member));
}
public static XamlMemberInvoker UnknownInvoker
{
get
{
if (s_Unknown is null)
{
s_Unknown = new XamlMemberInvoker();
}
return s_Unknown;
}
}
public MethodInfo UnderlyingGetter
{
get { return IsUnknown ? null : _member.Getter; }View on GitHub (pinned to 81131a70a4)