使用匿名类型写入XML

本文关键字:XML 类型 | 更新日期: 2023-09-27 18:22:13

现在,我正在阅读一个XML文档,并将其主要元素传递给下面的方法。然后,此方法返回用于更新DataGridView的IEnumerable中的相关元素。

private IEnumerable<object> readRelease(IEnumerable<XElement> release)
{
    return (
        from r in release
        select new
        {
            Release = r.Attribute("id").Value
            //etc.
        });
}

对于DataGridView,这种方法工作得很好,但如果我想将这些元素写入XML文件,或者更广泛地说,只想访问一个特定的变量(例如"Release"),该怎么办。那么我还能用这个方法吗?还是应该换个方法?

使用匿名类型写入XML

Kai是正确的,但我想指出的是,如果您的c#编译器支持,另一种选择是使用动态而不是对象。然后您可以访问属性,这些属性将在运行时解决。但如前所述,在您的场景中,您很可能会更好地定义一种新类型。

还有一个SO问题是关于一个肮脏的黑客,它允许您访问方法之外的匿名类型,但没有人建议使用它:

访问C#匿名类型对象

如果需要访问方法之外的特定变量,最好定义一个新类型,而不是使用匿名类型。