Exemple #1
0
        public virtual string GetMembersXml(ref string content)
        {
            int           orderCode;
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("<Parameter>");
            MemberInfo[] members = this.GetType().GetMembers();
            if (this.TransformCode == -1)
            {
                orderCode = (int)this.OrderCode;
            }
            else
            {
                orderCode = this.TransformCode;
            }
            int num = orderCode;
            Dictionary <string, string> strs = new Dictionary <string, string>();
            string groupName = "";

            MemberInfo[] memberInfoArray = members;
            for (int i = 0; i < (int)memberInfoArray.Length; i++)
            {
                MemberInfo memberInfo = memberInfoArray[i];
                TrafficProtocolAttribute             customAttribute = Attribute.GetCustomAttribute(memberInfo, typeof(TrafficProtocolAttribute)) as TrafficProtocolAttribute;
                TrafficProtocolAttrForArrayAttribute trafficProtocolAttrForArrayAttribute = Attribute.GetCustomAttribute(memberInfo, typeof(TrafficProtocolAttrForArrayAttribute)) as TrafficProtocolAttrForArrayAttribute;
                TrafficProtocolAttrGroupAttribute    trafficProtocolAttrGroupAttribute    = Attribute.GetCustomAttribute(memberInfo, typeof(TrafficProtocolAttrGroupAttribute)) as TrafficProtocolAttrGroupAttribute;
                if (customAttribute != null)
                {
                    stringBuilder.Append(this.GetSingleProperty(customAttribute, memberInfo, num, ref content));
                }
                else if (trafficProtocolAttrForArrayAttribute != null)
                {
                    stringBuilder.Append(this.GetArrayProperty(trafficProtocolAttrForArrayAttribute, memberInfo, num, ref content));
                }
                else if (trafficProtocolAttrGroupAttribute != null)
                {
                    if (trafficProtocolAttrGroupAttribute.HasContainOrderCoder(num.ToString()))
                    {
                        groupName = trafficProtocolAttrGroupAttribute.GroupName;
                        string str = this.GetType().GetProperty(memberInfo.Name).GetValue(this, null).ToString();
                        strs.Add(trafficProtocolAttrGroupAttribute.XmlTag, str);
                    }
                }
            }
            stringBuilder.Append(this.GetGroupAttr(strs, groupName, ref content));
            stringBuilder.Append("</Parameter>");
            return(stringBuilder.ToString());
        }
Exemple #2
0
        private string GetArrayProperty(TrafficProtocolAttrForArrayAttribute attr, MemberInfo m, int tmpOrderCoder, ref string content)
        {
            string str;

            if (attr.OrderCodelist.IndexOf(string.Concat(",", tmpOrderCoder.ToString(), ",")) >= 0)
            {
                ArrayList     value         = this.GetType().GetProperty(m.Name).GetValue(this, null) as ArrayList;
                StringBuilder stringBuilder = new StringBuilder();
                string        item          = TrafficProtocolAttrForArrayAttribute.DicOrderCode2XmlTag[tmpOrderCoder];
                string[]      strArrays     = new string[] { "," };
                string[]      strArrays1    = item.Split(strArrays, StringSplitOptions.RemoveEmptyEntries);
                if (value != null)
                {
                    for (int i = 0; i < value.Count; i++)
                    {
                        string[] item1 = value[i] as string[];
                        int      num   = 0;
                        while (true)
                        {
                            if ((num >= (int)item1.Length ? true : num >= (int)strArrays1.Length))
                            {
                                break;
                            }
                            strArrays = new string[] { "<", strArrays1[num], ">", item1[num], "</", strArrays1[num], ">" };
                            stringBuilder.Append(string.Concat(strArrays));
                            string str1 = content;
                            strArrays = new string[] { str1, strArrays1[num], "-", item1[num], "," };
                            content   = string.Concat(strArrays);
                            num++;
                        }
                    }
                }
                str = stringBuilder.ToString();
            }
            else
            {
                str = "";
            }
            return(str);
        }
Exemple #3
0
 private string GetArrayProperty(TrafficProtocolAttrForArrayAttribute attr, MemberInfo m, int tmpOrderCoder, ref string content)
 {
     string str;
     if (attr.OrderCodelist.IndexOf(string.Concat(",", tmpOrderCoder.ToString(), ",")) >= 0)
     {
         ArrayList value = this.GetType().GetProperty(m.Name).GetValue(this, null) as ArrayList;
         StringBuilder stringBuilder = new StringBuilder();
         string item = TrafficProtocolAttrForArrayAttribute.DicOrderCode2XmlTag[tmpOrderCoder];
         string[] strArrays = new string[] { "," };
         string[] strArrays1 = item.Split(strArrays, StringSplitOptions.RemoveEmptyEntries);
         if (value != null)
         {
             for (int i = 0; i < value.Count; i++)
             {
                 string[] item1 = value[i] as string[];
                 int num = 0;
                 while (true)
                 {
                     if ((num >= (int)item1.Length ? true : num >= (int)strArrays1.Length))
                     {
                         break;
                     }
                     strArrays = new string[] { "<", strArrays1[num], ">", item1[num], "</", strArrays1[num], ">" };
                     stringBuilder.Append(string.Concat(strArrays));
                     string str1 = content;
                     strArrays = new string[] { str1, strArrays1[num], "-", item1[num], "," };
                     content = string.Concat(strArrays);
                     num++;
                 }
             }
         }
         str = stringBuilder.ToString();
     }
     else
     {
         str = "";
     }
     return str;
 }