static void SaveFile(T data) { for (int i = 0; i < m_fieldInfo.Length; i++) { temp_SubNode = m_ParentNode.SelectSingleNode(m_fieldInfo[i].Name); temp_SubNode.InnerText = TDataConvert.Convert(m_fieldInfo[i].GetValue(data)); m_ParentNode.AppendChild(temp_SubNode); } m_Doc.Save(s_FilePath); }
public static List <T> GetFieldData <T>(List <string[]> data) where T : ISExcel { FieldInfo[] fields = typeof(T).GetFields(BindingFlags.NonPublic | BindingFlags.DeclaredOnly | BindingFlags.Instance); List <T> targetData = new List <T>(); try { Type type = typeof(T); for (int i = 0; i < data.Count; i++) { if (i == 0) //Ignore Row 0 and 1 { continue; } object obj = Activator.CreateInstance(type, true); for (int j = 0; j < fields.Length; j++) { try { Type phraseType = fields[j].FieldType; object value = null; string phraseValue = data[i][j].ToString(); if (phraseValue.Length == 0) { value = TDataConvert.Default(phraseType); } else { value = TDataConvert.Convert(phraseType, phraseValue); } fields[j].SetValue(obj, value); } catch (Exception e) { throw new Exception("Inner Info:|" + data[i + 1][j].ToString() + "|,Field:" + fields[j].Name + "|" + fields[j].FieldType.ToString() + ", Rows/Column:" + (i + 1).ToString() + "/" + (j + 1).ToString() + " Message:" + e.Message); } } T dataObject = (T)obj; dataObject.InitAfterSet(); targetData.Add(dataObject); } } catch (Exception e) { Debug.LogError("Excel|" + typeof(T).Name.ToString() + " Error:" + e.Message + e.StackTrace); } return(targetData); }
static void ReadData <T>(CDataSave <T> _data, XmlNode _node) where T : CDataSave <T>, new() { bool dataCrypt = _data.DataCrypt(); FieldInfo[] fieldInfo = CDataSave <T> .s_FieldInfos; for (int i = 0; i < fieldInfo.Length; i++) { string readData = _node.SelectSingleNode(fieldInfo[i].Name).InnerText; if (dataCrypt) { readData = TDataCrypt.EasyCryptData(readData, c_DataCryptKey); } fieldInfo[i].SetValue(_data, TDataConvert.Convert(fieldInfo[i].FieldType, readData)); } }
static void SaveData <T>(CDataSave <T> _data, XmlNode _node, string _path) where T : CDataSave <T>, new() { bool dataCrypt = _data.DataCrypt(); FieldInfo[] fieldInfos = CDataSave <T> .s_FieldInfos; foreach (var t in fieldInfos) { var fieldNode = _node.SelectSingleNode(t.Name); string saveData = TDataConvert.Convert(t.FieldType, t.GetValue(_data)); if (dataCrypt) { saveData = TDataCrypt.EasyCryptData(saveData, c_DataCryptKey); } fieldNode.InnerText = saveData; _node.AppendChild(fieldNode); } m_Doc.Save(_path); }
public static Dictionary <T, Y> GetFieldData <T, Y>(List <string[]> data) where T : struct where Y : struct, ISExcel <T> { Type valueType = typeof(Y); FieldInfo[] fields = valueType.GetFields(BindingFlags.NonPublic | BindingFlags.DeclaredOnly | BindingFlags.Instance); Dictionary <T, Y> targetData = new Dictionary <T, Y>(); try { for (int i = 1; i < data.Count; i++) //Ignore First Row { T key = TDataConvert.Convert <T>(data[i][0]); //First Column Use As Key object value = Activator.CreateInstance(valueType, true); for (int j = 0; j < fields.Length; j++) { Type phraseType = fields[j].FieldType; object fieldValue = null; string phraseValue = data[i][j + 1].ToString(); try { if (phraseValue.Length == 0) { fieldValue = TDataConvert.Default(phraseType); } else { fieldValue = TDataConvert.Convert(phraseType, phraseValue); } fields[j].SetValue(value, fieldValue); } catch (Exception e) { throw new Exception("Inner Info:|" + data[i][j + 1].ToString() + "|,Field:" + fields[j].Name + "|" + fields[j].FieldType.ToString() + ", Rows/Column:" + (i).ToString() + "/" + (j + 1).ToString() + " Message:" + e.Message); } } targetData.Add(key, (Y)value); } } catch (Exception e) { Debug.LogError("Excel|" + typeof(Y).Name.ToString() + " Error:" + e.Message + e.StackTrace); } return(targetData); }
static T ReadFile() { try { T temp = new T(); for (int i = 0; i < m_fieldInfo.Length; i++) { string data = m_ParentNode.SelectSingleNode(m_fieldInfo[i].Name).InnerText; m_fieldInfo[i].SetValue(temp, TDataConvert.Convert(m_fieldInfo[i].FieldType, data)); } temp.DataRecorrect(); return(temp); } catch (Exception e) { Debug.LogWarning("Xml Read File Error:" + e.Message); return(CreateDefaultDoc()); } }
void Awake() { m_Elder = transform.Find("Elder").GetComponent <Text>(); m_Newer = transform.Find("Newer").GetComponent <Text>(); STest temp = new STest(0, new List <STest1>() { new STest1(10.1f, enum_Test.Invalid), new STest1(10.2f, enum_Test.EnumData1) }, new STest2(9, "Test", new STest1(10.3f, enum_Test.EnumData1))); string convertString = TDataConvert.Convert(temp); m_Elder.text = convertString + temp.GetSomeInnerDatas(); Debug.Log(convertString); convertString = convertString.Replace('9', '2').Replace("Test", "New").Replace("EnumData1", "EnumData2"); string newText = convertString + TDataConvert.Convert <STest>(convertString).GetSomeInnerDatas(); m_Newer.text = newText; Debug.Log(newText); }
static T CreateDefaultDoc() { Debug.LogWarning("New Default Xml Doc Created."); if (File.Exists(s_FilePath)) { File.Delete(s_FilePath); } T temp = new T(); m_Doc = new XmlDocument(); temp_Element = m_Doc.CreateElement(typeof(T).Name); m_ParentNode = m_Doc.AppendChild(temp_Element); for (int i = 0; i < m_fieldInfo.Length; i++) { temp_Element = m_Doc.CreateElement(m_fieldInfo[i].Name); temp_Element.InnerText = TDataConvert.Convert(m_fieldInfo[i].GetValue(temp)); m_ParentNode.AppendChild(temp_Element); } return(temp); }
void Awake() { Properties <STestProperties> .Init(); for (int i = 0; i < Properties <STestProperties> .PropertiesList.Count; i++) { Debug.Log(TDataConvert.Convert(Properties <STestProperties> .PropertiesList[i])); } SheetProperties <STestSheetProperties> .Init(); for (int i = 0; i < SheetProperties <STestSheetProperties> .GetPropertiesList(1).Count; i++) { Debug.Log(TDataConvert.Convert(SheetProperties <STestSheetProperties> .GetPropertiesList(1)[i])); } m_Normal = transform.Find("Normal").GetComponent <UIT_TextExtend>(); m_Format = transform.Find("Format").GetComponent <UIT_TextExtend>(); transform.Find("ChangeLanguage").GetComponent <Button>().onClick.AddListener(OnChangeLanguageClick); TLocalization.OnLocaleChanged += OnKeyLocalized; TLocalization.SetRegion(enum_Option_LanguageRegion.CN); m_Normal.localizeKey = "GAME_TEST_NORMAL"; }
public string GetItemDatas() => m_Value + "," + TDataConvert.Convert(m_Integerss);