/// <summary> /// Create the ace from thr binary input /// </summary> /// <param name="binary">The input binary</param> /// <param name="offset">The offset of the binary</param> public static _AceHeader CreateAceFromBinary(byte[] binary, int offset) { if (binary == null) { throw new ArgumentNullException(nameof(binary)); } if (offset < 0 || offset > binary.Length - 1) { throw new ArgumentOutOfRangeException(nameof(offset)); } ACE_TYPE type = (ACE_TYPE)binary[offset]; if (DtypUtility.IsObjectAce(type)) { return(new _ObjectAce(binary, offset)); } else { return(new _NonObjectAce(binary, offset)); } }