static BssomSerialize_MyImage()
 {
     Input                = RandomHelper.RandomValueWithOutStringEmpty <MyImage>();
     Input.Binary         = new byte[4096 * 200];
     OutPut               = Serializer.BssomSerializer.Serialize(Input);
     UpdateDateOffsetInfo = BssomFieldMarshaller.IndexOf(OutPut, 0, OutPut.Length, "[UpdateTime]");
 }
Beispiel #2
0
 public IEnumerator <KeyValuePair <TKey, TValue> > GetEnumerator()
 {
     for (int i = 0; i < Count; i++)
     {
         TKey key = KeyFormatter.Deserialize(ref _reader, ref _context);
         if (IsOnlyReadFieldOffset)
         {
             BssomFieldOffsetInfo offset = new BssomFieldOffsetInfo(_reader.Position);
             yield return(new KeyValuePair <TKey, TValue>(key, Unsafe.As <BssomFieldOffsetInfo, TValue>(ref offset)));
         }
         else
         {
             yield return(new KeyValuePair <TKey, TValue>(key, ValueFormatter.Deserialize(ref _reader, ref _context)));
         }
     }
 }
 public object ReadObjectElement(ref BssomReader reader, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo)
 {
     return(ReadElement(ref reader, option, offsetInfo));
 }
 public void WriteObjectElement(ref BssomWriter writer, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo, object value)
 {
     WriteElement(ref writer, option, offsetInfo, (Int16)value);
 }
 public DateTime ReadElement(ref BssomReader reader, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo)
 {
     if (offsetInfo.Array1ElementTypeIsNativeType == false && offsetInfo.Array1ElementType == BssomType.TimestampCode)
     {
         return(reader.ReadStandDateTimeWithOutTypeHead());
     }
     else if (offsetInfo.Array1ElementTypeIsNativeType == true && offsetInfo.Array1ElementType == NativeBssomType.DateTimeCode)
     {
         return(reader.ReadNativeDateTimeWithOutTypeHead());
     }
     else
     {
         return(BssomSerializationArgumentException.InvalidOffsetInfoFormat <DateTime>());
     }
 }
 public void WriteElement(ref BssomWriter writer, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo, DateTime value)
 {
     if (offsetInfo.Array1ElementTypeIsNativeType == false && offsetInfo.Array1ElementType == BssomType.TimestampCode)
     {
         writer.Write(value, true, false);
     }
     else if (offsetInfo.Array1ElementTypeIsNativeType == true && offsetInfo.Array1ElementType == NativeBssomType.DateTimeCode)
     {
         writer.Write(value, false, false);
     }
     else
     {
         BssomSerializationArgumentException.InvalidOffsetInfoFormat <DateTime>();
     }
 }
        public Guid ReadElement(ref BssomReader reader, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo)
        {
            if (offsetInfo.Array1ElementTypeIsNativeType == true && offsetInfo.Array1ElementType == NativeBssomType.GuidCode)
            {
                return(reader.ReadGuidWithOutTypeHead());
            }

            return(BssomSerializationArgumentException.InvalidOffsetInfoFormat <Guid>());
        }
 public void WriteElement(ref BssomWriter writer, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo, Decimal value)
 {
     if (offsetInfo.Array1ElementTypeIsNativeType == true && offsetInfo.Array1ElementType == NativeBssomType.DecimalCode)
     {
         writer.WriteWithOutTypeHead(value);
     }
     else
     {
         BssomSerializationArgumentException.InvalidOffsetInfoFormat <Decimal>();
     }
 }
 public void WriteElement(ref BssomWriter writer, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo, BssomDecimal value)
 {
     WriteElement(ref writer, option, offsetInfo, value.RawValue);
 }
 public object ReadObjectElement(ref BssomReader reader, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo)
 {
     throw new NotImplementedException();
 }
 public void WriteObjectElement(ref BssomWriter writer, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo, object value)
 {
     throw new NotImplementedException();
 }
        public Object ReadElement(ref BssomReader reader, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo)
        {
            IArray1ElementWriter array1ElementWriter = Array1ElementWriterContainers.GetArray1ElementWriter(offsetInfo.Array1ElementTypeIsNativeType, offsetInfo.Array1ElementType);

            return(array1ElementWriter.ReadObjectElement(ref reader, option, offsetInfo));
        }
        public void WriteElement(ref BssomWriter writer, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo, Object value)
        {
            if (value is null)
            {
                throw new ArgumentNullException(nameof(value));
            }

            IArray1ElementWriter array1ElementWriter = Array1ElementWriterContainers.GetArray1ElementWriter(offsetInfo.Array1ElementTypeIsNativeType, offsetInfo.Array1ElementType);

            array1ElementWriter.WriteObjectElement(ref writer, option, offsetInfo, value);
        }
Beispiel #14
0
 public static T ReadElement(ref BssomReader reader, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo)
 {
     return(_controller.ReadElement(ref reader, option, offsetInfo));
 }
Beispiel #15
0
 public static void WriteElement(ref BssomWriter writer, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo, T value)
 {
     _controller.WriteElement(ref writer, option, offsetInfo, value);
 }
 public void WriteElement(ref BssomWriter writer, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo, Int32 value)
 {
     if (offsetInfo.Array1ElementTypeIsNativeType == false && offsetInfo.Array1ElementType == BssomType.Int32Code)
     {
         writer.WriteWithOutTypeHead(value);
     }
     else
     {
         BssomSerializationArgumentException.InvalidOffsetInfoFormat <Int32>();
     }
 }
        public Int32 ReadElement(ref BssomReader reader, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo)
        {
            if (offsetInfo.Array1ElementTypeIsNativeType == false && offsetInfo.Array1ElementType == BssomType.Int32Code)
            {
                return(reader.ReadInt32WithOutTypeHead());
            }

            return(BssomSerializationArgumentException.InvalidOffsetInfoFormat <Int32>());
        }
 BssomDecimal IArray1ElementWriter <BssomDecimal> .ReadElement(ref BssomReader reader, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo)
 {
     return((BssomDecimal)BssomValue.Create(ReadElement(ref reader, option, offsetInfo)));
 }