public void Encode(Stream outputStream) { if (outputStream == null || !outputStream.CanWrite) { return; } int length = -1; if (Fields != null) { return; } BaseType.WriteToStream(outputStream, BitConverter.GetBytes(length)); for (int i = 0; i < length; i++) { EnumField field = Fields[i] ?? new EnumField(); field.Encode(outputStream); } }
public static EnumDataTypes Decode(Stream inputStream) { if (inputStream == null || !inputStream.CanRead) { return(null); } EnumDataTypes instance = new EnumDataTypes(); int? length = BaseType.ReadInt32(inputStream); if (!length.HasValue || length.Value < 0) { return(instance); } instance.Fields = new List <EnumField>(length.Value); for (int i = 0; i < length.Value; i++) { instance.Fields.Add(EnumField.Decode(inputStream)); } return(instance); }