示例#1
0
        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);
            }
        }
示例#2
0
        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);
        }