Пример #1
0
        private string FindGetName(MemberInfo member, ToGetAttribute toGetAttribute)
        {
            if (toGetAttribute == null)
            {
                return(member.Name);
            }

            if (string.IsNullOrWhiteSpace(toGetAttribute.name))
            {
                return(member.Name);
            }

            return(toGetAttribute.name);
        }
Пример #2
0
        public Dictionary <string, string> GetValues()
        {
            Dictionary <string, string> values = new Dictionary <string, string>();

            MemberInfo[]      allMembers = GetType().GetMembers();
            List <MemberInfo> members    = allMembers.Where(member => member.MemberType == MemberTypes.Field || member.MemberType == MemberTypes.Property).ToList();

            string function = GetType().Name;

            values.Add("function", function);

            foreach (MemberInfo member in members)
            {
                ToGetAttribute toGetAttribute = (ToGetAttribute)member.GetCustomAttributes(typeof(ToGetAttribute)).SingleOrDefault();

                if (toGetAttribute != null && toGetAttribute.type == ToGetAttribute.typeEnum.ignore)
                {
                    continue;
                }

                string getName = FindGetName(member, toGetAttribute);

                object value = Utilities.ReflectionHelper.GetValue(this, member);

                if (value == null)
                {
                    continue;
                }

                if (AddCollectionType(getName, value, values))
                {
                    continue;
                }

                string valueString = FindGetValue(value, toGetAttribute);

                if (string.IsNullOrWhiteSpace(valueString))
                {
                    continue;
                }

                values.Add(getName, valueString);
            }

            return(values);
        }
Пример #3
0
        public string ToGet()
        {
            StringBuilder objectAsGetStringBuilder = new StringBuilder();

            MemberInfo[]      allMembers = GetType().GetMembers();
            List <MemberInfo> members    = allMembers.Where(member => member.MemberType == MemberTypes.Field || member.MemberType == MemberTypes.Property).ToList();

            string function = GetType().Name;

            AddUrlEncoded(objectAsGetStringBuilder, "function", function);

            foreach (MemberInfo member in members)
            {
                ToGetAttribute toGetAttribute = (ToGetAttribute)member.GetCustomAttributes(typeof(ToGetAttribute)).SingleOrDefault();

                if (toGetAttribute != null && toGetAttribute.type == ToGetAttribute.typeEnum.ignore)
                {
                    continue;
                }

                string getName = FindGetName(member, toGetAttribute);

                object value = Utilities.ReflectionHelper.GetValue(this, member);

                if (value == null)
                {
                    continue;
                }

                if (AddCollectionType(getName, value, objectAsGetStringBuilder))
                {
                    continue;
                }

                string valueString = FindGetValue(value, toGetAttribute);

                if (string.IsNullOrWhiteSpace(valueString))
                {
                    continue;
                }

                AddUrlEncoded(objectAsGetStringBuilder, getName, valueString);
            }

            return(objectAsGetStringBuilder.ToString());
        }
Пример #4
0
        private string FindGetValue(object value, ToGetAttribute toGetAttribute)
        {
            if (value == null)
            {
                return(null);
            }

            if (toGetAttribute == null)
            {
                return(ValueToString(value));
            }

            if (toGetAttribute.type == ToGetAttribute.typeEnum.intEnum)
            {
                return(((int)value).ToString());
            }

            if (toGetAttribute.type == ToGetAttribute.typeEnum.ShortDate)
            {
                return(((DateTime)value).ToString("yyyy-MM-dd"));
            }

            return(ValueToString(value));
        }