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;
}
}
}