コード例 #1
0
 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);
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        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));
            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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());
            }
        }
コード例 #7
0
    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);
    }
コード例 #8
0
        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);
        }
コード例 #9
0
    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";
    }
コード例 #10
0
 public string GetItemDatas() => m_Value + "," + TDataConvert.Convert(m_Integerss);