我正在尝试创建一个如下所示的XML:
<RootList>
<Root>
<ID>value1</ID>
<Number>value2</Number>
<Quantity>value3</Quantity>
</Root>
<Root>
<ID>value1</ID>
<Number>value2</Number>
<Quantity>value4</Quantity>
</Root>
<Root>
<ID>value5</ID>
<Number>value6</Number>
<Quantity>value7</Quantity>
</Root>
</RootList>
通过使用以下接口的实例。
interface IRoot
{
int ID { get; }
string Number { get; set; }
List<IQuantity> List { get; set; }
}
interface IQuantity
{
int QuantityID { get; }
double Quantity { get; set; }
}
下面的代码是我用来创建XML的代码,但由于stackoverflowexception,进程正在终止。
XDocument doc = new XDocument(
new XDeclaration("1.0", "utf-8", null),
new XElement("RootList",
this._list.Select(root =>
root.List.Select(quantity =>
new XElement("Root",
new XElement("ID", root.ID.ToString()),
new XElement("Number", root.Number),
new XElement("Quantity", quantity.Quantity.ToString())
)
)
)
)
);
如果我删除内部Select(我遍历列表中的列表),则输出有效。我不知道如何实际跟踪此错误,但我确定这是由于内部选择。有没有其他人有同样的问题,或有任何关于此的提示? :)
答案 0 :(得分:0)
现在发现了这个问题,我留下了一些XElements,因为我认为它们是不必要的,但是在root的第一个子节点下将有一个类变量作为其值。我制作了一个私有的静态Guid _guid,现在它可以工作了。请原谅。