new XElement ( "EffectFile",
new XElement ( "Effects", this.Effects.Select (
e => new XElement ( "Options", e.Options.Select (
o => new XElement ( "Option", o ) ) ) ) ) )
我正在尝试向名为Option
的最后一行中的Type
添加一个属性,其值包含类型为o
的{{1}}类型但是我希望存储Object
值,然后在解析xml文件时使用它,从中将字符串值转换回该值。
所以我也不确定如何在代码中进行程序化转换,其中转换将如下所示:
o.GetType()
但最后object option = (object) (typeStoredInXml) o;
值将是实际类型,即使它看起来像一个对象,但不是字符串,除非实际类型是字符串。
编辑:这是xml的样子:
option
type属性可能看起来不一样,我不确定o.GetType()是否看起来像是一个int,但它只是给出一个想法。
答案 0 :(得分:2)
这是你要找的东西吗?
new XElement ( "EffectFile",
new XElement ( "Effects", this.Effects.Select (
e => new XElement ( "Options", e.Options.Select (
o => new XElement ( "Option", o,
new XAttribute("Type", o.GetType() ) ) ) ) ) )
显然,这仅在o
不为空时才有效。
顺便说一句,您可能希望查看XML序列化,因为它看起来基本上就是您的目标。有专门为帮助这类事物而构建的库,因此您不必手动发出和解析XML。