Exemplo n.º 1
0
 /// <summary>
 /// 初始化 <see cref="PropertyHandler"/>
 /// </summary>
 /// <param name="property">属性</param>
 public PropertyHandler(PropertyInfo property)
 {
     Property     = property;
     PropertyType = property.PropertyType;
     Name         = property.Name;
     Get          = ComponentServices.GetGeter(property);
     Set          = ComponentServices.GetSeter(property);
 }
Exemplo n.º 2
0
 /// <summary>
 /// 初始化属性操作器
 /// </summary>
 /// <param name="property"> 需要操作的属性 </param>
 /// <exception cref="Exception">
 /// IOC插件异常 <seealso cref="ComponentServices.GetGeter" /> 或
 /// <seealso cref="ComponentServices.GetSeter" /> 出现错误.
 /// </exception>
 public PropertyHandler(PropertyInfo property)
 {
     Name         = property.Name;
     PropertyType = property.PropertyType;
     Debug.Assert(ComponentServices.GetGeter != null, "ComponentServices.GetGeter != null");
     Debug.Assert(ComponentServices.GetSeter != null, "ComponentServices.GetSeter != null");
     _getter = ComponentServices.GetGeter(property);
     _setter = ComponentServices.GetSeter(property);
 }
Exemplo n.º 3
0
        private void InitGetSet(out Type type, out Func <object, object> get, out Action <object, object> set)
        {
            type = (Member as PropertyInfo)?.PropertyType ?? (Member as FieldInfo)?.FieldType;
            if (ComponentServices.GetGeter != null)
            {
                get = ComponentServices.GetGeter(Member);
            }
            else
            {
                switch (Member.MemberType)
                {
                case MemberTypes.Property:
                    get = ((PropertyInfo)Member).GetValue;
                    break;

                case MemberTypes.Field:
                    get = ((FieldInfo)Member).GetValue;
                    break;

                default:
                    get = null;
                    break;
                }
            }

            if (ComponentServices.GetSeter != null)
            {
                set = ComponentServices.GetSeter(Member);
            }
            else
            {
                switch (Member.MemberType)
                {
                case MemberTypes.Property:
                    set = ((PropertyInfo)Member).SetValue;
                    break;

                case MemberTypes.Field:
                    set = ((FieldInfo)Member).SetValue;
                    break;

                default:
                    set = null;
                    break;
                }
            }
        }