Ejemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="instance"></param>
        /// <param name="propertyName"></param>
        /// <param name="accessor"></param>
        /// <returns></returns>
        public static object GetProperty <T>(this T instance, string propertyName, IDynamicPropertyAccessor accessor = null)
        {
            if (String.IsNullOrWhiteSpace(propertyName))
            {
                throw new ArgumentNullException("propertyName");
            }

            return(HandleNullValue((accessor ?? AdaptedAccessorFactory.Instance.GetAccessor <T>()).GetProperty(instance, propertyName), instance, propertyName));
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="instance"></param>
        /// <param name="propertyName"></param>
        /// <param name="accessor"></param>
        /// <returns></returns>
        public static object GetProperty(this object instance, string propertyName, IDynamicPropertyAccessor accessor = null)
        {
            if (String.IsNullOrWhiteSpace(propertyName))
            {
                throw new ArgumentNullException("propertyName");
            }

            return(HandleNullValue((accessor ?? GetPropertyAccessor(instance)).GetProperty(instance, propertyName), instance, propertyName));
        }
Ejemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="instance"></param>
        /// <param name="accessor"></param>
        /// <param name="propertyNames"></param>
        /// <returns></returns>
        public static object GetProperty(this object instance, IDynamicPropertyAccessor accessor = null, params string[] propertyNames)
        {
            if (propertyNames == null || propertyNames.Length == 0)
            {
                throw new ArgumentNullException("propertyNames");
            }

            accessor = accessor ?? AdaptedAccessorFactory.Instance.GetAccessor(instance);

            foreach (var propertyName in propertyNames)
            {
                // Need to Call Handle null value here.
                var value = instance.GetProperty(propertyName, accessor);
                if (value != null)
                {
                    return(value);
                }
            }

            return(null);
        }
Ejemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="instance"></param>
        /// <param name="propertyName"></param>
        /// <param name="value"></param>
        /// <param name="accessor"></param>
        /// <returns></returns>
        public static bool SetProperty(this object instance, string propertyName, object value, IDynamicPropertyAccessor accessor = null)
        {
            if (String.IsNullOrWhiteSpace(propertyName))
            {
                throw new ArgumentNullException("propertyName");
            }

            return((accessor ?? AdaptedAccessorFactory.Instance.GetAccessor(instance.GetType())).SetProperty(instance, propertyName, value));
        }