public static DesfireFileSettings Parse(byte[] buffer) { System.IO.BinaryReader reader = new System.IO.BinaryReader(new System.IO.MemoryStream(buffer)); DesfireFileType ft = (DesfireFileType)(buffer[0]); switch (ft) { case DesfireFileType.StandardData: case DesfireFileType.Backup: // It's a standard file... return(new StandardSettings(reader)); case DesfireFileType.LinearRecord: case DesfireFileType.CyclicRecord: return(new RecordSettings(reader)); case DesfireFileType.Value: return(new ValueSettings(reader)); default: throw new ArgumentException("Unkonwn type of record."); } }
protected DesfireFileSettings(System.IO.BinaryReader reader) { this.FileType = (DesfireFileType)reader.ReadByte(); this.CommSetting = reader.ReadByte(); this.AccessRights = reader.ReadBytes(2); }