public void SetValue(byte id, object structure) { if (!structure.GetType().IsValueType) { throw new Exception("Only value types are available."); } var field = GetField(id); if (field == null) { field = new XPacketField { FieldID = id }; Fields.Add(field); } var bytes = FixedObjectToByteArray(structure); if (bytes.Length > byte.MaxValue) { throw new Exception("Object is too big. Max length is 255 bytes."); } field.FieldSize = (byte)bytes.Length; field.Contents = bytes; }
public void SetValueRaw(byte id, byte[] rawData) { var field = GetField(id); if (field == null) { field = new XPacketField { FieldID = id }; Fields.Add(field); } if (rawData.Length > byte.MaxValue) { throw new Exception("Object is too big. Max length is 255 bytes."); } field.FieldSize = (byte)rawData.Length; field.Contents = rawData; }