Пример #1
0
 public static void WriteVariableNumber(IBssomBufferWriter writer, ulong value)
 {
     if (value <= VariableUInt8Max)
     {
         ref byte refb = ref writer.GetRef(1);
         refb = unchecked ((byte)value);
         writer.Advance(1);
     }
Пример #2
0
        /// <summary>
        /// <para>将给定的值序列化到<paramref name="bufferWriter"/></para>
        /// <para>Serializes a given value with the specified <paramref name="bufferWriter"/></para>
        /// </summary>
        /// <param name="context">序列化所需要的上下文. The context required for the serialization </param>
        /// <param name="value">要序列化的值. The value to serialize</param>
        /// <param name="bufferWriter">要序列化的缓冲区写入器. The buffer writer to serialize with</param>
        public static void Serialize <T>(ref BssomSerializeContext context, T value, IBssomBufferWriter bufferWriter)
        {
            if (context.Option == null)
            {
                context.Option = BssomSerializerOptions.Default;
            }

            BssomWriter writer = new BssomWriter(bufferWriter);

            context.Option.FormatterResolver.GetFormatterWithVerify <T>().Serialize(ref writer, ref context, value);
        }
Пример #3
0
        /// <summary>
        /// <para>将给定的值序列化到<paramref name="bufferWriter"/></para>
        /// <para>Serializes a given value with the specified <paramref name="bufferWriter"/></para>
        /// </summary>
        /// <param name="value">要序列化的值. The value to serialize</param>
        /// <param name="bufferWriter">要序列化的缓冲区写入器. The buffer writer to serialize with</param>
        /// <param name="option">使用的配置,如果为<c>null</c>,则使用默认配置. The options. Use <c>null</c> to use default options</param>
        /// <param name="cancellationToken">取消该操作的令牌. The token to cancel the operation</param>
        public static void Serialize <T>(T value, IBssomBufferWriter bufferWriter, BssomSerializerOptions option = null, CancellationToken cancellationToken = default)
        {
            if (bufferWriter == null)
            {
                throw new ArgumentNullException(nameof(bufferWriter));
            }

            if (option == null)
            {
                option = BssomSerializerOptions.Default;
            }

            BssomSerializeContext context = new BssomSerializeContext(option, cancellationToken);
            BssomWriter           writer  = new BssomWriter(bufferWriter);

            option.FormatterResolver.GetFormatterWithVerify <T>().Serialize(ref writer, ref context, value);
        }
Пример #4
0
 /// <summary>
 /// <para>通过<see cref="IBssomBufferWriter"/>来初始化<see cref="BssomFieldMarshaller"/></para>
 /// <para>Through <see cref="IBssomBufferWriter"/> to initialize <see cref="BssomFieldMarshaller"/></para>
 /// </summary>
 /// <param name="bufferWriter">buffer writer</param>
 public BssomFieldMarshaller(IBssomBufferWriter bufferWriter)
 {
     this.bufferWriter = bufferWriter;
     basePos           = bufferWriter.Position;
 }
Пример #5
0
 public BssomWriter(IBssomBufferWriter bssomBufferWriter)
 {
     BufferWriter = bssomBufferWriter;
 }