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