using System; using System.ComponentModel; namespace DPumpHydr.WinFrmUI.WenSkin.Json.Linq { /// /// Represents a view of a . /// public class JPropertyDescriptor : PropertyDescriptor { /// /// When overridden in a derived class, gets the type of the component this property is bound to. /// /// /// A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. /// public override Type ComponentType => typeof(JObject); /// /// When overridden in a derived class, gets a value indicating whether this property is read-only. /// /// /// true if the property is read-only; otherwise, false. /// public override bool IsReadOnly => false; /// /// When overridden in a derived class, gets the type of the property. /// /// /// A that represents the type of the property. /// public override Type PropertyType => typeof(object); /// /// Gets the hash code for the name of the member. /// /// /// /// The hash code for the name of the member. /// protected override int NameHashCode => base.NameHashCode; /// /// Initializes a new instance of the class. /// /// The name. public JPropertyDescriptor(string name) : base(name, null) { } private static JObject CastInstance(object instance) { return (JObject)instance; } /// /// When overridden in a derived class, returns whether resetting an object changes its value. /// /// /// true if resetting the component changes its value; otherwise, false. /// /// The component to test for reset capability. public override bool CanResetValue(object component) { return false; } /// /// When overridden in a derived class, gets the current value of the property on a component. /// /// /// The value of a property for a given component. /// /// The component with the property for which to retrieve the value. /// public override object GetValue(object component) { return CastInstance(component)[Name]; } /// /// When overridden in a derived class, resets the value for this property of the component to the default value. /// /// The component with the property value that is to be reset to the default value. /// public override void ResetValue(object component) { } /// /// When overridden in a derived class, sets the value of the component to a different value. /// /// The component with the property value that is to be set. /// The new value. /// public override void SetValue(object component, object value) { JToken value2 = ((value is JToken) ? ((JToken)value) : new JValue(value)); CastInstance(component)[Name] = value2; } /// /// When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. /// /// /// true if the property should be persisted; otherwise, false. /// /// The component with the property to be examined for persistence. public override bool ShouldSerializeValue(object component) { return false; } } }