【发布时间】:2011-10-27 16:08:10
【问题描述】:
我想将对象转换为 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();
}
但是使用反序列化器时我遇到了一些问题......虽然这个过程我没有遇到错误或问题(调用它的方法也是如此)但是当我尝试访问任何成员时问题就开始了。所有成员都是空的(对于访问任何成员的方法都是一样的)。代码如下:
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 { }
}
}
【问题讨论】:
-
除了不使用
using,我真的看不出这段代码有什么问题。你能在这里发布T的定义吗? -
好的,我刚刚添加了 using 语句,谢谢 :) 完整的类有点多,但它们看起来像这样: public class User { private string _name;公共字符串名称 { 获取 { 返回 _name; } 设置 { } } } 公共类 AllUser { 私人用户 [] _users;公共用户 [] 用户 { 获取 { 返回 _users; } 设置 { } } }
-
sry,但我只能发表评论:/ 发现你可以编辑我的帖子 :)
-
一旦我填写了你的设置器,这对我来说很好用。我可以发布我的完整示例,但我猜问题是别的。
-
该死的,我需要睡觉 :)。我将值分配给用于内部计算的私有成员,它们的名称几乎相同:/需要更改它。修复了二传手,一切正常。谢谢
标签: c# xml serialization xml-serialization