我需要将对象转换为xml,并已经通过几篇文章来做到这一点。但是,我收到错误“生成xml文档时出错,请确保源类型与目标类型相同”。将对象转换为xml
下面是我的代码
namespace XYZ {
[Serializable]
[XmlRoot("details")]
public class Details
{
private string code;
[XmlAttribute ("code")]
public string Code
{
get { return code; }
set { code= value; }
}
private string mcode;
[XmlAttribute("mcode")]
public string MCode
{
get { return mcode; }
set { mcode= value; }
}
}
}
和其他类文件粘贴下面
namespace ABC
{
[Serializable]
[XmlRoot("BillDetails")]
public class BillDetails
{
private string cat;
[XmlAttribute("Cat")]
public string Cat
{
get { return cat; }
set { cat= value; }
}
private string customername;
[XmlAttribute("CustomerName")]
public string CustomerName
{
get { return customername; }
set { customername = value; }
}
private List<Details> details;
[XmlArray("Details")]
[XmlArrayItem("details")]
// public List<Details> details = new List<Details>();
public List<Details> Details
{
get { return details; }
set { details = value; }
}
}
}
下面是我在哪里得到的错误
List<BillDetails> billlist = new List<BillDetails>();
public int x;
List<Details> newdetails = new List<Details>();
public void Button1_Click(object sender, EventArgs e)
{
if (Session["x"] == null)
{
newdetails.Add(new Details() { Code = Code.Text, MCode = MCode.Text});
billlist.Add(new BillDetails() { Cat = Cat.Text, Details = newdetails.ToList(), CustomerName = CustomerName.Text });
//Code to bindGrid
Session["x"] = newdetails;
serializetoxml(billlist);
}
private void serializetoxml(List<BillDetails> billlist)
{
XmlSerializer myserializer = new XmlSerializer(typeof(BillDetails));
TextWriter mywriter = new StreamWriter("C:\\billlist.xml");
myserializer.Serialize(mywriter, billlist);--- Error is thrown here
mywriter.Close();
}
请帮忙代码纠正我。
非常感谢你,让代码运行。完全错过了! :) – Janet 2011-03-14 19:14:30