using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LB_SmartVisionCommon { /// /// 权限属性描述符 /// public class PermissionPropertyDescriptor : PropertyDescriptor { private readonly PropertyDescriptor _original; private readonly bool _isReadOnly; /// /// 权限属性描述符 /// /// 属性描述符 /// 是否只读 public PermissionPropertyDescriptor(PropertyDescriptor original, bool isReadOnly) : base(original) { _original = original; _isReadOnly = isReadOnly; } /// /// 是否只读 /// public override bool IsReadOnly => _isReadOnly; /// /// 当前组件类型 /// public override Type ComponentType => _original.ComponentType; /// /// 属性类型 /// public override Type PropertyType => _original.PropertyType; /// /// 返回重置对象时是否更改其值。 /// /// 要测试重置功能的组件。 /// 如果重置组件更改其值,则为 true;否则为 false。 public override bool CanResetValue(object component) => _original.CanResetValue(component); /// /// 返回给定对象支持的字段的值。 /// /// 将返回其字段值的对象。 /// 一个对象,包含此实例反映的字段的值。 public override object GetValue(object component) => _original.GetValue(component); /// /// 将组件的此属性的值重置为默认值。 /// /// 具有要重置为默认值的属性值的组件。 public override void ResetValue(object component) => _original.ResetValue(component); /// /// 设置指定对象的属性值。 /// /// 将设置其属性值的对象。 /// 新的属性值。 public override void SetValue(object component, object value) => _original.SetValue(component, value); /// /// 确定一个值,该值指示是否需要永久保存此属性的值。 /// /// 具有要检查其持久性的属性的组件。 /// 如果属性应该被永久保存,则为 true;否则为 false。 public override bool ShouldSerializeValue(object component) => _original.ShouldSerializeValue(component); } }