示例#1
0
        private SimpleObjectSerializer(object Value, SimpleObjectFieldSerializationMode FieldMode, DefinitionList Types)
            : base(Value, Types)
        {
            this.FieldMode = FieldMode;
            if (IsEmpty)
            {
                return;
            }

            if (IsArray)
            {
                Children = GetArrayValues().ToArray();
            }
            else if (TypeCode == TypeCode.Object)
            {
                this.CustomSerializer = Object as ICustomSerializer;
                if (CustomSerializer != null && CustomSerializer.Initialize(this))
                {
                    return;
                }
                Children = GetFields().ToArray();
            }
            else if (TypeCode == TypeCode.String)
            {
                StringIndex = defs.Strings.Add((string)Value);
            }
        }
示例#2
0
 public SimpleObjectSerializer(object Value, SimpleObjectFieldSerializationMode FieldMode)
     : this(Value, FieldMode, new DefinitionList())
 {
 }
示例#3
0
        public static byte[] Serialize(object o, SimpleObjectFieldSerializationMode FieldMode)
        {
            var os = new SimpleObjectSerializer(o, FieldMode);

            return(os.Serialize());
        }