private void SelectWriteType(SaveImplementType type, object value) { byte[] tx = Encoding.UTF8.GetBytes(value.ConverToString()); byte[] txEncrypt = EncryptHelp.AESEncrypt(tx, SaveDefaultData.EncryptKey, SaveDefaultData.EncryptValue); switch (saveSetting.saveImplementType) { case SaveImplementType.ImplementByte: if (txEncrypt != null) { SerializeHelper.SerializeBinary(saveSetting.path, txEncrypt); } break; case SaveImplementType.ImplementJson: var tempJson = new JsonTestFloat { Savekey = this.saveSetting.filenameData.tag, SaveValue = txEncrypt }; tempJson.SaveJson(this.saveSetting.path); break; case SaveImplementType.ImplementProto: var tempProto = new ProtoBufSave { Savekey = this.saveSetting.filenameData.tag, SaveValue = (int)value }; tempProto.SaveProtoBuff(this.saveSetting.path); break; case SaveImplementType.ImplementXML: SerializeHelper.SerializeXML(this.saveSetting.path, txEncrypt); break; } }
public SaveSetting(string tag, string path, SaveImplementType type = SaveImplementType.ImplementByte) { filenameData = new FilenameData(tag); this.path = path + tag; this.saveImplementType = type; FileMgr.Instance.CreateDirIfNotExists(path); }
/// <summary> /// 保存+默认保存路径+默认风格 /// </summary> /// <typeparam name="保存的类型"></typeparam> /// <param name="保存的内容"></param> /// <param name="保存的key"></param> /// <param name="保存的实现方式"></param> public static void Write <T>(T param, string key, SaveImplementType type = SaveImplementType.ImplementByte) { SaveSetting setting = new SaveSetting(key, type); using (Writer writer = Writer.Create(setting)) { writer.Write <T>(param, setting.filenameData.tag); } }
private void ReadFileData(SaveImplementType type = SaveImplementType.ImplementByte) { using (Profiler p = new Profiler("SaveToolsHelp.Reader")) { for (int i = 0; i < count; i++) { SaveToolsHelp.Reader <int>(i + "文件", type); } } }
private void WriteFileData(SaveImplementType type = SaveImplementType.ImplementByte) { using (Profiler p = new Profiler("SaveToolsHelp.Write")) { for (int i = 0; i < count; i++) { SaveToolsHelp.Write(i, i + "文件", type); } } }
/// <summary> /// 读取文件+可以输入默认值的,如果读不到的情况 /// </summary> /// <typeparam name="读取的类型"></typeparam> /// <param name="读取的key"></param> /// <param name="读取的默认值"></param> /// <param name="读取的方式"></param> /// <returns></returns> public static T Reader <T>(string key, T defaultData, SaveImplementType type = SaveImplementType.ImplementByte) { SaveSetting setting = new SaveSetting(key, type); using (Read reader = Read.Create(setting)) { //if (!Exists(identifier)) { // return default(T); //} return(reader.Reader(setting.filenameData.tag, defaultData)); } }
private object ReadValue(SaveImplementType type, EnumSaveTypeKey keyType) { switch (type) { case SaveImplementType.ImplementByte: Stream stream = FileMgr.Instance.OpenReadStream(this.saveSetting.path); if (stream != null) { stream.Close(); var data = SerializeHelper.DeserializeBinary(this.saveSetting.path); if (data != null) { switch (keyType) { case EnumSaveTypeKey.SaveInt: return(int.Parse(data.ToString())); case EnumSaveTypeKey.SaveLong: return(long.Parse(data.ToString())); case EnumSaveTypeKey.SaveFolat: return(float.Parse(data.ToString())); case EnumSaveTypeKey.SaveString: return(data.ToString()); case EnumSaveTypeKey.SaveDouble: return(double.Parse(data.ToString())); case EnumSaveTypeKey.SaveBool: return(bool.Parse(data.ToString())); case EnumSaveTypeKey.Savebyte: return(byte.Parse(data.ToString())); case EnumSaveTypeKey.SaveShort: return(short.Parse(data.ToString())); case EnumSaveTypeKey.SaveUint: return(uint.Parse(data.ToString())); case EnumSaveTypeKey.SaveUlong: return(ulong.Parse(data.ToString())); case EnumSaveTypeKey.SaveUshort: return(ushort.Parse(data.ToString())); case EnumSaveTypeKey.SaveChar: return(char.Parse(data.ToString())); case EnumSaveTypeKey.SaveVector2: return(StringExtention.GetValue <Vector2>(data.ConverToString())); case EnumSaveTypeKey.SaveVector3: return(StringExtention.GetValue <Vector3>(data.ConverToString())); case EnumSaveTypeKey.SaveVector4: return(StringExtention.GetValue <Vector4>(data.ConverToString())); case EnumSaveTypeKey.SaveQuaternion: return(StringExtention.GetValue <Quaternion>(data.ConverToString())); case EnumSaveTypeKey.SaveColor: return(StringExtention.GetValue <Color>(data.ConverToString())); case EnumSaveTypeKey.SaveEnum: return(StringExtention.GetValue(data.ConverToString(), (Type)saveSetting.curObject)); case EnumSaveTypeKey.SaveList: return(StringExtention.GetValue(data.ConverToString(), (Type)saveSetting.curObject)); case EnumSaveTypeKey.SaveDictionary: return(StringExtention.GetValue(data.ConverToString(), (Type)saveSetting.curObject));; case EnumSaveTypeKey.SaveDateTime: return(DateTime.Parse(data.ToString())); case EnumSaveTypeKey.SaveArray: return(StringExtention.GetValue(data.ConverToString(), (Type)saveSetting.curObject)); case EnumSaveTypeKey.SaveHashtable: return(StringExtention.GetValue(data.ConverToString(), (Type)saveSetting.curObject)); case EnumSaveTypeKey.SaveArrayList: return(StringExtention.GetValue(data.ConverToString(), (Type)saveSetting.curObject)); } return(null); } } break; case SaveImplementType.ImplementJson: if (!string.IsNullOrEmpty(saveSetting.path)) { var data = SerializeHelper.LoadJson <JsonTestFloat>(this.saveSetting.path); if (data != null) { byte[] txEncrypt = EncryptHelp.AESDecrypt(data.SaveValue, SaveDefaultData.EncryptKey, SaveDefaultData.EncryptValue); string str = Encoding.UTF8.GetString(txEncrypt); switch (keyType) { case EnumSaveTypeKey.SaveInt: return(int.Parse(str.ToString())); case EnumSaveTypeKey.SaveLong: return(long.Parse(str.ToString())); case EnumSaveTypeKey.SaveFolat: return(float.Parse(str.ToString())); case EnumSaveTypeKey.SaveString: return(str.ToString()); case EnumSaveTypeKey.SaveDouble: return(double.Parse(str.ToString())); case EnumSaveTypeKey.SaveBool: return(bool.Parse(str.ToString())); case EnumSaveTypeKey.Savebyte: return(byte.Parse(str.ToString())); case EnumSaveTypeKey.SaveShort: return(short.Parse(str.ToString())); case EnumSaveTypeKey.SaveUint: return(uint.Parse(str.ToString())); case EnumSaveTypeKey.SaveUlong: return(ulong.Parse(str.ToString())); case EnumSaveTypeKey.SaveUshort: return(ushort.Parse(str.ToString())); case EnumSaveTypeKey.SaveChar: return(char.Parse(str.ToString())); case EnumSaveTypeKey.SaveVector2: return(StringExtention.GetValue <Vector2>(str.ConverToString())); case EnumSaveTypeKey.SaveVector3: return(StringExtention.GetValue <Vector3>(str.ConverToString())); case EnumSaveTypeKey.SaveVector4: return(StringExtention.GetValue <Vector4>(str.ConverToString())); case EnumSaveTypeKey.SaveQuaternion: return(StringExtention.GetValue <Quaternion>(str.ConverToString())); case EnumSaveTypeKey.SaveColor: return(StringExtention.GetValue <Color>(str.ConverToString())); case EnumSaveTypeKey.SaveEnum: return(StringExtention.GetValue(str.ConverToString(), (Type)saveSetting.curObject)); case EnumSaveTypeKey.SaveList: return(StringExtention.GetValue(str.ConverToString(), (Type)saveSetting.curObject)); case EnumSaveTypeKey.SaveDictionary: return(StringExtention.GetValue(str.ConverToString(), (Type)saveSetting.curObject)); case EnumSaveTypeKey.SaveDateTime: return(DateTime.Parse(str.ToString())); case EnumSaveTypeKey.SaveArray: return(StringExtention.GetValue(str.ConverToString(), (Type)saveSetting.curObject)); case EnumSaveTypeKey.SaveHashtable: return(StringExtention.GetValue(str.ConverToString(), (Type)saveSetting.curObject)); case EnumSaveTypeKey.SaveArrayList: return(StringExtention.GetValue(str.ConverToString(), (Type)saveSetting.curObject)); } return(null); } } break; case SaveImplementType.ImplementProto: if (!string.IsNullOrEmpty(saveSetting.path)) { var data = SerializeHelper.LoadProtoBuff <ProtoBufSave>(saveSetting.path); if (data != null) { switch (keyType) { case EnumSaveTypeKey.SaveInt: return(data.SaveValue); //case EnumSaveTypeKey.SaveFolat: // return (float)data.SaveValue; case EnumSaveTypeKey.SaveString: return(data.SaveValue.ToString()); case EnumSaveTypeKey.SaveBool: return(bool.Parse(data.SaveValue.ToString())); } return(null); } } break; case SaveImplementType.ImplementXML: if (!string.IsNullOrEmpty(saveSetting.path)) { switch (keyType) { case EnumSaveTypeKey.SaveInt: var dataInt = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataInt == null) { return(null); } return(int.Parse(dataInt.ToString())); case EnumSaveTypeKey.SaveLong: var dataLong = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataLong == null) { return(null); } return(long.Parse(dataLong.ToString())); case EnumSaveTypeKey.SaveFolat: var dataFolat = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataFolat == null) { return(null); } return(float.Parse(dataFolat.ToString())); case EnumSaveTypeKey.SaveString: var dataString = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataString == null) { return(null); } return(dataString.ToString()); case EnumSaveTypeKey.SaveDouble: var dataDouble = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataDouble == null) { return(null); } return(double.Parse(dataDouble.ToString())); case EnumSaveTypeKey.SaveBool: var dataBool = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataBool == null) { return(null); } return(bool.Parse(dataBool.ToString())); case EnumSaveTypeKey.Savebyte: var dataByte = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataByte == null) { return(null); } return(byte.Parse(dataByte.ToString())); case EnumSaveTypeKey.SaveShort: var dataShort = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataShort == null) { return(null); } return(short.Parse(dataShort.ToString())); case EnumSaveTypeKey.SaveUint: var dataUint = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataUint == null) { return(null); } return(uint.Parse(dataUint.ToString())); case EnumSaveTypeKey.SaveUlong: var dataUlong = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataUlong == null) { return(dataUlong); } return(ulong.Parse(dataUlong.ToString())); case EnumSaveTypeKey.SaveUshort: var dataUshort = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataUshort == null) { return(dataUshort); } return(ushort.Parse(dataUshort.ToString())); case EnumSaveTypeKey.SaveChar: var dataChar = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataChar == null) { return(dataChar); } return(char.Parse(dataChar.ToString())); case EnumSaveTypeKey.SaveVector2: var dataVector2 = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataVector2 == null) { return(null); } return(StringExtention.GetValue <Vector2>(dataVector2.ConverToString())); case EnumSaveTypeKey.SaveVector3: var dataVector3 = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataVector3 == null) { return(null); } return(StringExtention.GetValue <Vector3>(dataVector3.ConverToString())); case EnumSaveTypeKey.SaveVector4: var dataVector4 = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataVector4 == null) { return(null); } return(StringExtention.GetValue <Vector4>(dataVector4.ConverToString())); case EnumSaveTypeKey.SaveQuaternion: var dataQuaternion = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataQuaternion == null) { return(null); } return(StringExtention.GetValue <Quaternion>(dataQuaternion.ConverToString())); case EnumSaveTypeKey.SaveColor: var dataColor = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataColor == null) { return(null); } return(StringExtention.GetValue <Color>(dataColor.ConverToString())); case EnumSaveTypeKey.SaveEnum: var dataEnum = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataEnum == null) { return(null); } return(StringExtention.GetValue(dataEnum.ConverToString(), (Type)saveSetting.curObject)); case EnumSaveTypeKey.SaveList: var dataList = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataList == null) { return(null); } return(StringExtention.GetValue(dataList.ConverToString(), (Type)saveSetting.curObject)); case EnumSaveTypeKey.SaveDictionary: var dataDictionary = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataDictionary == null) { return(null); } return(StringExtention.GetValue(dataDictionary.ConverToString(), (Type)saveSetting.curObject)); case EnumSaveTypeKey.SaveDateTime: var dataDateTime = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataDateTime == null) { return(null); } return(DateTime.Parse(dataDateTime.ToString())); case EnumSaveTypeKey.SaveArray: var dataArray = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataArray == null) { return(null); } return(StringExtention.GetValue(dataArray.ConverToString(), (Type)saveSetting.curObject)); case EnumSaveTypeKey.SaveHashtable: var dataHashtable = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataHashtable == null) { return(null); } return(StringExtention.GetValue(dataHashtable.ConverToString(), (Type)saveSetting.curObject)); case EnumSaveTypeKey.SaveArrayList: var dataArrayList = SerializeHelper.DeserializeXML <byte[]>(saveSetting.path); if (dataArrayList == null) { return(null); } return(StringExtention.GetValue(dataArrayList.ConverToString(), (Type)saveSetting.curObject)); } } break; } return(null); }