dotnet/wpf · error
ArgumentNullException(nameof(propertyName))
Error message
ArgumentNullException(nameof(propertyName))
What it means
XamlPropertyBaseNode requires a non-null property name; the node represents a property assignment in the XAML node stream. A null propertyName makes the node meaningless, so ArgumentNullException(nameof(propertyName)) is thrown immediately after the typeFullName check.
Solutions
- Resolve the property/member name before constructing the node.
- Guard the call site with a null/empty check on the property name.
- Skip or log the malformed property node instead of constructing it with a null name.
Example fix
// before
var node = new XamlPropertyBaseNode(propertyMember, assemblyName, typeFullName, null, ...);
// after
if (string.IsNullOrEmpty(propertyName)) throw new ArgumentException("property name required", nameof(propertyName));
var node = new XamlPropertyBaseNode(propertyMember, assemblyName, typeFullName, propertyName, ...); Defensive patterns
Strategy: validation
Validate before calling
if (string.IsNullOrEmpty(propertyName)) throw new InvalidOperationException("Property node requires a resolved member name"); Type guard
bool HasPropertyName(XamlMember member) => !string.IsNullOrEmpty(member?.Name);
Try / catch
try { node = new XamlPropertyBaseNode(...); }
catch (ArgumentNullException) { /* skip/log malformed property node */ } Prevention
- Resolve members via the type's property lookup before constructing property nodes.
- Skip or report nodes with unresolved members instead of passing null.
When it happens
Trigger: Constructing XamlPropertyBaseNode with propertyName == null, e.g. custom reader code emitting a property node whose member name was not resolved.
Common situations: Custom XAML node-stream generators, markup extensions whose member resolution failed, tooling that rewrites XAML node streams.
Related errors
- ArgumentNullException(nameof(assemblyName))
- ArgumentNullException(nameof(assemblyNames))
- ArgumentNullException(nameof(assemblyPath))
- ArgumentNullException(nameof(clrNamespace))
- ArgumentNullException(nameof(localName))
AI-assisted analysis of dotnet/wpf@81131a70a4 (2026-09-14).
Data as JSON: /api/errors/821f6260fc532e58.
Report an issue: GitHub.
Appendix: source
Thrown at src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Markup/XamlNodes.cs:435
int lineNumber,
int linePosition,
int depth,
object propertyMember, // DependencyProperty or MethodInfo or PropertyInfo
string assemblyName,
string typeFullName,
string propertyName)
: base (token,
lineNumber,
linePosition,
depth)
{
if (typeFullName == null)
{
throw new ArgumentNullException(nameof(typeFullName));
}
if (propertyName == null)
{
throw new ArgumentNullException(nameof(propertyName));
}
_propertyMember = propertyMember;
_assemblyName = assemblyName;
_typeFullName = typeFullName;
_propName = propertyName;
}
#if PBTCOMPILER
/// <summary>
/// PropertyInfo for the property for the Node. This may be null.
/// </summary>
internal PropertyInfo PropInfo
{
get { return _propertyMember as PropertyInfo;}
}
#endif
View on GitHub (pinned to 81131a70a4)