示例#1
0
        private static string GetNFormatMemberValue(object target, MemberInfo memberInfo, bool collectErrMsgs, ChoMemberFormatterAttribute memberFormaterAttribute,
                                                    ChoMemberItemFormatterAttribute memberItemFormaterAttribute, BindingFlags bindingFlags)
        {
            try
            {
                string memberText  = null;
                object memberValue = ChoType.GetMemberValue(target, memberInfo);
                if (memberValue == target)
                {
                    return(null);
                }

                //if (memberFormaterAttribute == null)
                //{
                //    object[] typeConverters = ChoTypeDescriptor.GetTypeConverters(memberInfo);
                //    if (typeConverters != null && typeConverters.Length > 0)
                //    {
                //        if (typeConverters.Length == 1 && typeConverters[0].GetType() == typeof(System.ComponentModel.TypeConverter))
                //        {
                //        }
                //        else
                //        {
                //            object convertedValue = ChoConvert.ConvertTo(target, memberInfo, typeof(string)); //, typeConverters, ChoTypeDescriptor.GetTypeConverterParams(memberInfo), null);
                //            return convertedValue == null ? String.Empty : convertedValue.ToString();
                //            //return memberText;
                //        }
                //    }
                //}
                memberText = ChoFormattableObject.ToString(memberValue, collectErrMsgs, memberFormaterAttribute, memberItemFormaterAttribute, bindingFlags);
                if (memberText.ContainsMultiLines())
                {
                    memberText = Environment.NewLine + memberText.Indent();
                }
                return(memberText);
            }
            catch (ChoFatalApplicationException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new ChoApplicationException(memberInfo.Name, ex);
            }
        }
示例#2
0
        private static string GetNFormatMemberValue(object target, MemberInfo memberInfo, bool collectErrMsgs, ChoMemberFormatterAttribute memberFormaterAttribute,
                                                    ChoMemberItemFormatterAttribute memberItemFormaterAttribute, BindingFlags bindingFlags)
        {
            try
            {
                string memberText  = null;
                object memberValue = ChoType.GetMemberValue(target, memberInfo);
                if (memberValue == target)
                {
                    return(null);
                }

                if (memberFormaterAttribute == null)
                {
                    object[] typeConverters = ChoTypeDescriptor.GetTypeConverters(memberInfo);
                    if (typeConverters != null && typeConverters.Length > 0)
                    {
                        memberText = (string)ChoConvert.ConvertTo(target, memberValue, typeof(string), typeConverters, ChoTypeDescriptor.GetTypeConverterParams(memberInfo), null);
                        return(memberText);
                    }
                }
                memberText = ChoFormattableObject.ToString(memberValue, collectErrMsgs, memberFormaterAttribute, memberItemFormaterAttribute, bindingFlags);
                if (memberText.ContainsMultiLines())
                {
                    memberText = Environment.NewLine + memberText.Indent();
                }
                return(memberText);
            }
            catch (ChoFatalApplicationException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new ChoApplicationException(memberInfo.Name, ex);
            }
        }