Ejemplo n.º 1
0
        /// <summary>
        /// 解析多值集合
        /// </summary>
        private void getValues()
        {
            HashSet <SubString> hashSet = HashSetCreator.CreateSubString();

            foreach (SubString value in this.value.split(','))
            {
                if (value.Length != 0)
                {
                    hashSet.Add(value);
                }
            }
            this.value = null;
            if (hashSet.Count > 1)
            {
                valueData = AutoCSer.StateSearcher.CharBuilder.Create(hashSet.getArray(value => (string)value), false);
                values    = new StateSearcher.CharSearcher(valueData.Pointer);
            }
            else
            {
                foreach (string value in hashSet)
                {
                    this.value = value;
                }
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 成员位图类型信息
 /// </summary>
 /// <param name="type">类型</param>
 /// <param name="members">成员索引集合</param>
 /// <param name="fieldCount">字段成员数量</param>
 public TypeInfo(Type type, AutoCSer.Metadata.MemberIndexInfo[] members, int fieldCount)
 {
     Type                = type;
     MemberCount         = members.Length;
     FieldCount          = fieldCount;
     MemberMapSize       = ((MemberCount + 63) >> 6) << 3;
     NameIndexSearcher   = new StateSearcher.CharSearcher(AutoCSer.StateSearcher.CharBuilder.Create(members.getArray(value => value.Member.Name), true).Pointer);
     Pool                = Pool.GetPool(MemberMapSize);
     BinarySerializeSize = ((fieldCount + 31) >> 5) << 2;
 }