Best way to store data locally in .NET (C#)

后端 未结 19 1244
南方客
南方客 2020-11-28 01:53

I\'m writing an application that takes user data and stores it locally for use later. The application will be started and stopped fairly often, and I\'d like to make it save

19条回答
  •  有刺的猬
    2020-11-28 02:25

    XML is easy to use, via serialization. Use Isolated storage.

    See also How to decide where to store per-user state? Registry? AppData? Isolated Storage?

    public class UserDB 
    {
        // actual data to be preserved for each user
        public int A; 
        public string Z; 
    
        // metadata        
        public DateTime LastSaved;
        public int eon;
    
        private string dbpath; 
    
        public static UserDB Load(string path)
        {
            UserDB udb;
            try
            {
                System.Xml.Serialization.XmlSerializer s=new System.Xml.Serialization.XmlSerializer(typeof(UserDB));
                using(System.IO.StreamReader reader= System.IO.File.OpenText(path))
                {
                    udb= (UserDB) s.Deserialize(reader);
                }
            }
            catch
            {
                udb= new UserDB();
            }
            udb.dbpath= path; 
    
            return udb;
        }
    
    
        public void Save()
        {
            LastSaved= System.DateTime.Now;
            eon++;
            var s= new System.Xml.Serialization.XmlSerializer(typeof(UserDB));
            var ns= new System.Xml.Serialization.XmlSerializerNamespaces();
            ns.Add( "", "");
            System.IO.StreamWriter writer= System.IO.File.CreateText(dbpath);
            s.Serialize(writer, this, ns);
            writer.Close();
        }
    }
    

提交回复
热议问题