关于XML系列化问题?

ivanchou 2011-09-05 07:00:05
我的XML文件如下:

<?xml version="1.0" encoding="utf-8"?>
<UrlRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<urlitem id="1" />
<urlitem id="1" />
</UrlRoot>


系列化的类结构如下:

[Serializable]
public class UrlRoot
{
public UrlRoot()
{ }
private List<urlitem> _urlitem = new List<urlitem>();
public List<urlitem> urlitem
{
get { return _urlitem; }
}
}

[Serializable]
public class urlitem
{
private string _id;
[XmlAttribute("id")]
public string id
{
get { return _id; }
set { _id = value; }
}
public urlitem()
{ }
}




问题:为什么我系列化后urlitem的集合总是0呢?如果我改成单个就可以。。。谁来帮帮忙啊..
...全文
62 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hustcyb 2011-09-08
  • 打赏
  • 举报
回复
刚才试过了,对于泛型类型,属性的确不须要公有的set访问器就可以序列化,看来以前老观念要抛弃了
ivanchou 2011-09-07
  • 打赏
  • 举报
回复
泛型节点可以设置只读的。。。。
ivanchou 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hustcyb 的回复:]
你定义的类urlitem是不能序列化的,要序列化的属性必须有公有的get和set方法,另外urlitem上必须添加一个特性,不然序列化的结果并不是你所预期的

C# code

public class UrlRoot
{
public UrlRoot()
{ }
private List<urlitem> _urli……
[/Quote]
您所说的urlitem只读是可以系列化的,问题已经解决了。。原因是属性上忘了加[XmlElement("uriitem")]。。谢谢你。。。分给你了
hustcyb 2011-09-05
  • 打赏
  • 举报
回复
你定义的类urlitem是不能序列化的,要序列化的属性必须有公有的get和set方法,另外urlitem上必须添加一个特性,不然序列化的结果并不是你所预期的

public class UrlRoot
{
public UrlRoot()
{ }
private List<urlitem> _urlitem = new List<urlitem>();

[XmlElement("uriitem")]
public List<urlitem> UrlItems
{
get { return _urlitem; }
set { this._urlitem = value;
}
}

ivanchou 2011-09-05
  • 打赏
  • 举报
回复
系列化多个相同的节点怎么写,帮忙说下谢了
ivanchou 2011-09-05
  • 打赏
  • 举报
回复
很急啊,谁来帮个忙。。。谢了

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧