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); }
/// <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); }
/// <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); }
/// <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; }
public BssomWriter(IBssomBufferWriter bssomBufferWriter) { BufferWriter = bssomBufferWriter; }