|
@@ -50,7 +50,10 @@ namespace Avalonia
|
|
|
AvaloniaPropertyMetadata metadata,
|
|
|
Action<AvaloniaObject, bool>? notifying = null)
|
|
|
{
|
|
|
- _ = name ?? throw new ArgumentNullException(nameof(name));
|
|
|
+ ThrowHelper.ThrowIfNull(name, nameof(name));
|
|
|
+ ThrowHelper.ThrowIfNull(valueType, nameof(valueType));
|
|
|
+ ThrowHelper.ThrowIfNull(ownerType, nameof(ownerType));
|
|
|
+ ThrowHelper.ThrowIfNull(metadata, nameof(metadata));
|
|
|
|
|
|
if (name.Contains('.'))
|
|
|
{
|
|
@@ -60,12 +63,13 @@ namespace Avalonia
|
|
|
_metadata = new Dictionary<Type, AvaloniaPropertyMetadata>();
|
|
|
|
|
|
Name = name;
|
|
|
- PropertyType = valueType ?? throw new ArgumentNullException(nameof(valueType));
|
|
|
- OwnerType = ownerType ?? throw new ArgumentNullException(nameof(ownerType));
|
|
|
+ PropertyType = valueType;
|
|
|
+ OwnerType = ownerType;
|
|
|
Notifying = notifying;
|
|
|
Id = s_nextId++;
|
|
|
|
|
|
- _metadata.Add(hostType, metadata ?? throw new ArgumentNullException(nameof(metadata)));
|
|
|
+ metadata.Freeze();
|
|
|
+ _metadata.Add(hostType, metadata);
|
|
|
_defaultMetadata = metadata.GenerateTypeSafeMetadata();
|
|
|
_singleMetadata = new(hostType, metadata);
|
|
|
}
|
|
@@ -584,6 +588,7 @@ namespace Avalonia
|
|
|
|
|
|
var baseMetadata = GetMetadata(type);
|
|
|
metadata.Merge(baseMetadata, this);
|
|
|
+ metadata.Freeze();
|
|
|
_metadata.Add(type, metadata);
|
|
|
_metadataCache.Clear();
|
|
|
|