我想将对象转换为xml并反转。我可以使用这种方法将我的对象序列化到xml文档中而没有任何问题:
public static void SaveObjectToXML(T _obj, string fileName)
{
XmlSerializer ser = new XmlSerializer(typeof(T));
FileStream str = new FileStream(fileName, FileMode.Create);
ser.Serialize(str, _obj);
str.Close();
}
但是使用Deserializer我遇到了一些问题......虽然这个过程我没有错误或问题(调用它的方法相同),但是当我尝试进行任何成员访问时,问题就开始了。所有成员都为null(对于访问任何成员的方法都相同)。下面是代码:
public static T SaveXMLToObject(string fileName)
{
XmlSerializer ser = new XmlSerializer(typeof(T));
StreamReader sr = new StreamReader(fileName);
T dataSet = (T)ser.Deserialize(sr);
return dataSet;
}
任何想法?
编辑:
好的,我刚刚添加了using语句,谢谢你:) 完整的课程有点多,但它们看起来像这样:
public class User
{
private string _name;
public string Name
{
get { return _name; }
set { }
}
}
public class AllUser
{
private User[] _users;
public User[] Users
{
get { return _users; }
set { }
}
}
答案 0 :(得分:2)
假设示例代码完整,我并不感到惊讶。你有空的setter(这是序列化将使用的)。不要只通过添加空setter来满足序列化错误。它是填充数据所必需的。
将其更改为
set { _users = value; }
它应该有效
答案 1 :(得分:-1)
我认为您只需要将要反序列化的类标记为[Serializable]
。例如:
[Serializable]
public class User
{
...
}