首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

xml序列化解决方法

2012-11-06 
xml序列化大家帮我看一下,这个类序列化后,xml里面怎么没有username和userpwd呢?C# code[Serializable]publ

xml序列化
大家帮我看一下,这个类序列化后,xml里面怎么没有username和userpwd呢?

C# code
  [Serializable]    public class Program    {        private const string Path = "temp.xml";        private static Program p = new Program();        private string _userName;        public static string UserName        {            get { return p._userName; }            set { p._userName = value; }        }        private string _userPwd;        public static string UserPwd        {            get { return p._userPwd; }            set { p._userPwd = value; }        }        public Program()        {        }        public void Serializable()        {            using (FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + Path, FileMode.Create, FileAccess.Write, FileShare.None))            {                XmlSerializer xs = new XmlSerializer(typeof(Program));                xs.Serialize(fs, p);            }        }        public static void Save()        {            p.Serializable();        }        static void Main(string[] args)        {            Program.UserName = "aaa";            Program.UserPwd = "bbb";            Program.Save();        }    }


[解决办法]
public static string UserName
=>
public string UserName

静态属性是不参与序列化的
[解决办法]
不能用Static的。
最好定义一个数据类

public class User
{
public string UserName{get;set;}
public string UserPwd{get;set;}
}
 public void Serializable(User u)
{
 using (FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + Path, FileMode.Create, FileAccess.Write, FileShare.None))
{
XmlSerializer xs = new XmlSerializer(typeof(User));
xs.Serialize(fs, u);
}
}

热点排行