public void Encode(Stream outputStream) { if (outputStream == null || !outputStream.CanWrite) { return; } DataTypeId.Encode(outputStream); Name.Encode(outputStream); DefaultEncoding.Encode(outputStream); BaseDataType.Encode(outputStream); BaseType.WriteToStream(outputStream, BitConverter.GetBytes(StructureType)); int arrayLength = -1; if (Fields != null) { arrayLength = Fields.Count; } BaseType.WriteToStream(outputStream, BitConverter.GetBytes(arrayLength)); for (int i = 0; i < arrayLength; i++) { Fields[i] .Encode(outputStream); } }