c# – XmlSerializer抛出异常“System.InvalidOperationException”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – XmlSerializer抛出异常“System.InvalidOperationException”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1530字,纯文字阅读大概需要3分钟。
内容图文
![c# – XmlSerializer抛出异常“System.InvalidOperationException”](/upload/InfoBanner/zyjiaocheng/788/63e7b2e198ed454081f55e9de7a8899b.jpg)
我试图将列表数据设置为xml格式.我有一个复杂的对象
class user包含另一个类对象列表的Info
[Serializable]
class UserInfo : Address
{
[XmlElement("Firstname")]
public String firstname { get; set; }
[XmlElement("Surname")]
public String surname { get; set; }
[XmlArray("Addresses")]
// [XmlArrayItem("Address",typeof(Address))]
public List<Address> addressesL { get; set;}
}
地址类只有一个字符串字段
class Address
{
[XmlElement("Address")]
public String saddress { get; set; }
}
这是主要的
static void Main(string[] args)
{
UserInfo user = new UserInfo();
Address adres = new Address();
List<Address> adresl = new List<Address>();
List<UserInfo> userlist = new List<UserInfo>();
user.firstname = "Mustafa";
user.surname = "Alqanbar";
adres.saddress = "Saudi Arabia";
adresl.Add(adres);
adres = new Address();
adres.saddress = "Australia";
adresl.Add(adres);
user.addressesL = adresl;
userlist.Add(user);
for (int i = 0; i < userlist.Count; i++)
{
Console.Write("{0} {1} ",userlist[i].firstname, userlist[i].surname);
for (int j = 0; j < userlist[i].addressesL.Count; j++)
{
Console.Write("{0} ",userlist[i].addressesL[j].saddress);
}
Console.WriteLine();
}
XmlSerializer ser = new XmlSerializer((typeof(List<UserInfo>)));
// XmlSerializer deser = XmlSerializer.FromTypes(new[] { (typeof(List<UserInfo>)) })[0];
using (TextWriter writer = new StreamWriter(@"c:\x.xml"))
{
ser.Serialize(writer, user);
}
Console.ReadKey();
}
我在堆栈溢出中读了一些帖子,但我无法解决我的问题.
解决方法:
根据我的理解,XmlSerializer要编写和读取的类必须在其命名空间中声明为public;至少在this example是这样的.
内容总结
以上是互联网集市为您收集整理的c# – XmlSerializer抛出异常“System.InvalidOperationException”全部内容,希望文章能够帮你解决c# – XmlSerializer抛出异常“System.InvalidOperationException”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。