对象将序列化为XML但不会反序列化为对象的原因是什么?

时间:2014-02-11 03:05:33

标签: c# xml serialization deserialization

这就是我所拥有的。(只是用户类,函数和函数调用。我只是从代码中抓取它们作为参考)序列化工作得很好,它只是反序列化不能工作...我运行我的程序并输入用户信息,它序列化到XML就好....我已将其设置为在程序启动时立即反序列化为admin。但当我去查看用户时,我看到的每个条目都是“未知”。

public static User admin = new User();
admin = DeserializeFromXMLUser();

//Send user to user config XML file
static public void SerializeToXMLUser(User user)
{
    XmlSerializer serializer = new XmlSerializer(typeof(User));
    TextWriter textWriter = new StreamWriter(@"G:\\Projects\User Config.xml");
    serializer.Serialize(textWriter, user);
    textWriter.Close();
}

//Grab user info from user config XML file
static User DeserializeFromXMLUser()
{
    XmlSerializer deserializer = new XmlSerializer(typeof(User));
    TextReader textReader = new StreamReader(@"G:\\Projects\User Config.xml");
    User user;
    user = (User)deserializer.Deserialize(textReader);
    textReader.Close();
    return user;
}

//Creating a User Object Class
public class User
{
    public string userEMail { get; set; }
    public string userPassword { get; set; }
    public string userCell { get; set; }
    public string userSMTP { get; set; }

    public User()
    {
        userEMail = "Unknown";
        userPassword = "BpGusTrn3/59drIJCB6eRw==";
        userCell = "Unknown";
        userSMTP = "Unknown";
    }
}

这是XML文件:

<?xml version="1.0" encoding="utf-8"?>
<User xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <userEMail>someone@somewhere</userEMail>
  <userPassword>BpGusTrn3/59drIJCB6eRw==</userPassword>
  <userCell>1234567890</userCell>
  <userSMTP>some-smtp.server.com</userSMTP>
</User>

0 个答案:

没有答案