示例#1
0
        public T LoadFromLocalStorage <T>(string filename, bool loadFromserver = false)
        {
            var localObj    = (T)Activator.CreateInstance(typeof(T));
            var xmlFilename = filename.Replace(".json", ".xml");

            if (Exists(xmlFilename))
            {
                var testdata = _fileUtility.Load(xmlFilename);
                var length   = testdata.Length;
            }
            // 1 read json
            if (filename.EndsWith(".json", StringComparison.CurrentCultureIgnoreCase) && Exists(filename))
            {
                string json = _fileUtility.Load(filename);
                localObj = JsonConvert.DeserializeObject <T>(json);
            }
            else
            {
                if (Exists(xmlFilename))
                {
                    var xmlString = _fileUtility.Load(xmlFilename);
                    xmlString = xmlString.Replace("<int>", "<string>");
                    xmlString = xmlString.Replace("</int>", "</string>");
                    xmlString = xmlString.Replace("ArrayOfInt", "ArrayOfString");

                    using (var reader = new StringReader(xmlString))
                    {
                        XmlSerializer serializer = new XmlSerializer(typeof(T));
                        localObj = (T)serializer.Deserialize(reader);
                        SaveToLocalStorage(localObj, filename); //Save to json format
                    }
                }
            }
            return(localObj);
        }