protected override void PrimitiveCollectionSerializeOverride(BoundedStream stream, object boundValue, ValueValueNode childSerializer, SerializedType childSerializedType, FieldLength itemLength, long?itemCount) { var array = (Array)BoundValue; // Handle const-sized mismatched collections PadArray(ref array, itemCount); for (var i = 0; i < array.Length; i++) { if (stream.IsAtLimit) { break; } var value = array.GetValue(i); childSerializer.Serialize(stream, value, childSerializedType, itemLength); } }
protected override async Task PrimitiveCollectionSerializeOverrideAsync(BoundedStream stream, object boundValue, ValueValueNode childSerializer, SerializedType childSerializedType, FieldLength itemLength, long?itemCount, CancellationToken cancellationToken) { var array = (Array)BoundValue; // Handle const-sized mismatched collections PadArray(ref array, itemCount); for (var i = 0; i < array.Length; i++) { if (stream.IsAtLimit) { break; } var value = array.GetValue(i); await childSerializer.SerializeAsync(stream, value, childSerializedType, itemLength, cancellationToken) .ConfigureAwait(false); } }
public FieldFloat(int length) { Length = new FieldLength(length); }
/// <summary> /// Initializes a new instance of the MemberSerializedEventArgs class with the member name and value. /// </summary> /// <param name="memberName">The name of the member.</param> /// <param name="value">The value of the member.</param> /// <param name="context">The current serialization context.</param> /// <param name="offset">The current offset in the stream relative to the start of the overall operation.</param> /// <param name="localOffset">The current object-local offset in the stream.</param> public MemberSerializedEventArgs(string memberName, object value, BinaryDataSerializationContext context, FieldLength offset, FieldLength localOffset) : base(memberName, context, offset, localOffset) { Value = value; }
public Task WriteAsync(char value, FieldLength fieldLength, CancellationToken cancellationToken) { var data = _encoding.GetBytes(new[] { value }); return(WriteAsync(data, fieldLength, cancellationToken)); }
protected abstract Task PrimitiveCollectionSerializeOverrideAsync(BoundedStream stream, object boundValue, ValueValueNode childSerializer, SerializedType childSerializedType, FieldLength itemLength, long?itemCount, CancellationToken cancellationToken);
protected override void PrimitiveCollectionSerializeOverride(BoundedStream stream, object boundValue, ValueValueNode childSerializer, SerializedType childSerializedType, FieldLength itemLength, long?itemCount) { var list = (IList)boundValue; // Handle const-sized mismatched collections PadList(ref list, itemCount); foreach (var value in list) { if (stream.IsAtLimit) { break; } childSerializer.Serialize(stream, value, childSerializedType, itemLength); } }
public IField Configure(string Name, int Size, int Number, FieldLength Length, FieldFormat Format, IFieldFormatter Formatter, IFieldValidator Validator, IFieldParser Parser) { this.Init(Name, Size, Number, Length, Format, Formatter, Validator, Parser); return(this); }
public void Write(uint value, FieldLength fieldLength) { var data = BitConverter.GetBytes(value); Write(data, fieldLength); }
protected override async Task PrimitiveCollectionSerializeOverrideAsync(BoundedStream stream, object boundValue, ValueValueNode childSerializer, SerializedType childSerializedType, FieldLength itemLength, long?itemCount, CancellationToken cancellationToken) { var list = (IList)boundValue; // Handle const-sized mismatched collections PadList(ref list, itemCount); foreach (var value in list) { if (stream.IsAtLimit) { break; } await childSerializer.SerializeAsync(stream, value, childSerializedType, itemLength, cancellationToken) .ConfigureAwait(false); } }
public Task WriteAsync(int value, FieldLength fieldLength, CancellationToken cancellationToken) { var data = BitConverter.GetBytes(value); return(WriteAsync(data, fieldLength, cancellationToken)); }
public Task WriteAsync(sbyte value, FieldLength fieldLength, CancellationToken cancellationToken) { var data = new[] { (byte)value }; return(WriteAsync(data, fieldLength, cancellationToken)); }
public void Write(sbyte value, FieldLength fieldLength) { var data = new[] { (byte)value }; Write(data, fieldLength); }
public FieldVarbinary(int length) { Length = new FieldLength(length); }
public FieldDecimal(int length, byte decimalDigits) { Length = new FieldLength(length); Length.DecimalDigits = decimalDigits; }
private string BuildFieldLength(FieldLength fieldLength) => $"{fieldLength.FieldName} {fieldLength.FieldType}" + $"({fieldLength.Length}){IsNotNull(fieldLength.IsNotNull)}";
protected abstract void PrimitiveCollectionSerializeOverride(BoundedStream stream, object boundValue, ValueValueNode childSerializer, SerializedType childSerializedType, FieldLength itemLength, long?itemCount);
public IField Configure(string Name, int Size, int Number, FieldLength Length, FieldFormat Format) { this.Init(Name, Size, Number, Length, Format, FormatHelpers.GetFormatter(Length), ValidatorHelpers.GetValidator(Format), ParserHelpers.GetParser(Length)); return(this); }
/// <summary> /// Initializes a new instance of the MemberSerializingEventArgs class with the member name. /// </summary> /// <param name="memberName">The name of the member.</param> /// <param name="context">The current serialization context.</param> /// <param name="offset">The current offset in the stream relative to the start of the overall operation.</param> /// <param name="localOffset">The current object-local offset in the stream.</param> public MemberSerializingEventArgs(string memberName, BinarySerializationContext context, FieldLength offset, FieldLength localOffset) { MemberName = memberName; Context = context; Offset = offset; LocalOffset = localOffset; }