You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
/// Represents a unique <see cref="DotvvmProperty"/> ID, used as a key for <see cref="DotvvmPropertyDictionary" />.
11
+
/// </summary>
12
+
/// <remarks>
13
+
/// The ID is a 32-bit unsigned integer, where:
14
+
/// - the most significant bit indicates whether the ID is of a property group (1) or a classic property (0)
15
+
/// - the next upper 15 bits are the <see cref="TypeId"/> (for classic properties) or <see cref="GroupId"/> (for property groups)
16
+
/// - the lower 16 bits are the <see cref="MemberId"/>, ID of the string key for property groups or the ID of the property for classic properties
17
+
/// - in case of classic properties, the LSB bit of the member ID indicates whether the property has GetValue/SetValue overrides and is not inherited (see <see cref="CanUseFastAccessors"/>)
/// <summary> Returns true if the property does not have GetValue/SetValue overrides and is not inherited. That means it is sufficient </summary>
61
+
/// <summary> Returns true if the property does not have GetValue/SetValue overrides and is not inherited. That means it is sufficient to call properties.TryGet instead going through the DotvvmProperty.GetValue dynamic dispatch </summary>
/// <summary> Returns the <see cref="DotvvmProperty"/> instance for this ID. Note that a new <see cref="GroupedDotvvmProperty"/> might need to be allocated. </summary>
41
83
publicDotvvmPropertyPropertyInstance=>DotvvmPropertyIdAssignment.GetProperty(Id)??thrownewException($"Property with ID {Id} not registered.");
84
+
85
+
/// <summary> Returns the <see cref="GroupedDotvvmProperty"/> instance for this ID, or <c>null</c> if the ID is of a classic property. </summary>
Debug.Assert(DotvvmPropertyIdAssignment.GetProperty(propertyId)!=null,$"Property {propertyId} not registered.");
77
+
Debug.Assert(GetProperty(propertyId)!=null,$"Property {propertyId} not registered.");
74
78
ulong[]bitmap;
75
79
uintindex;
76
80
if(propertyId.IsPropertyGroup)
@@ -85,7 +89,8 @@ public static bool IsActive(DotvvmPropertyId propertyId)
85
89
}
86
90
returnBitmapRead(bitmap,index);
87
91
}
88
-
92
+
93
+
/// <summary> Returns the DotvvmProperty with a given ID, or returns null if no such property exists. New instance of <see cref="GroupedDotvvmProperty"/> might be created. </summary>
0 commit comments