public void Encode(BinaryWriter writer) { EsfType containedTypeCode = ContainedTypeCode; EsfType esfType = containedTypeCode + 64; writer.Write((byte)esfType); byte[] array = new byte[0]; using (MemoryStream memoryStream = new MemoryStream()) { using (BinaryWriter writer2 = new BinaryWriter(memoryStream)) { CodecNode <T> codecNode = base.Codec.CreateValueNode(containedTypeCode, optimize: false) as CodecNode <T>; codecNode.TypeCode = containedTypeCode; T[] value = Value; for (int i = 0; i < value.Length; i++) { T val2 = codecNode.Value = value[i]; codecNode.WriteValue(writer2); } array = memoryStream.ToArray(); base.Codec.WriteOffset(writer, array.Length); writer.Write(array); } } }
public void Encode(BinaryWriter writer) { EsfType containedTypeCode = ContainedTypeCode; EsfType myRealType = (EsfType)(containedTypeCode + 0x40); #if DEBUG Console.WriteLine("encoding array with {2} bytes, code {0} containing {1}", myRealType, containedTypeCode, Value.Length); #endif writer.Write((byte)myRealType); byte[] encodedArray = new byte[0]; using (var stream = new MemoryStream()) { using (var memWriter = new BinaryWriter(stream)) { CodecNode <T> valueNode = Codec.CreateValueNode(containedTypeCode, false) as CodecNode <T>; valueNode.TypeCode = containedTypeCode; foreach (T item in Value) { valueNode.Value = item; valueNode.WriteValue(memWriter); } encodedArray = stream.ToArray(); #if DEBUG Console.WriteLine("size is {0}", encodedArray.Length); #endif Codec.WriteOffset(writer, encodedArray.Length); writer.Write(encodedArray); } } }