LINQ2XML通过使用列表中的stackoverflowException中的列表来构建Xdocument



我正在尝试创建一个看起来像这样的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())
                )
            )
        )
    )
);

如果我删除了内部选择(在列表中的列表中迭代的地方),则输出有效。我不知道如何实际跟踪此错误,但是我敢肯定这是由于内部选择所致。还有其他人遇到相同的问题,还是对此有任何建议?:)

现在找到了问题,我认为它们是不必要的,因为我认为它们是不必要的,但是在第一个root的儿童节点下,将有一个类变量作为其值。我从中制作了一个私人静态指导_,现在它起作用了。我求您原谅。

最新更新