Ada*_*one 4 c# xml anonymous-types
我想尝试从我编写的XML阅读器返回一个对象来处理一个具有部分未知结构的文件.
以下是XML的示例.
<xml>
<strings>
<Home>
<Index>
<PreWrapper>
<Left>
<Title>Blah</Title>
<Body>Lorem ipsum dolor sit amet, consec tetuer adipiscing elit. Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit</Body>
<LinkText>read more</LinkText>
<LinkUrl>#</LinkUrl>
</Left>
<Center>
<Title>Exploit your ideas</Title>
<Body>Lorem ipsum dolor sit amet, consec tetuer adipiscing elit. Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit</Body>
<LinkText>read more</LinkText>
<LinkUrl>#</LinkUrl>
</Center>
<Right>
<Title>Grow your business</Title>
<Body>Lorem ipsum dolor sit amet, consec tetuer adipiscing elit. Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit</Body>
<LinkText>read more</LinkText>
<LinkUrl>#</LinkUrl>
</Right>
</PreWrapper>
</Index>
</Home>
</strings>
<config>
<Home>
<Index>
<ShowPreWrapper>True</ShowPreWrapper>
</Index>
</Home>
</config>
</xml>
Run Code Online (Sandbox Code Playgroud)
我想能够和我的读者打电话
var left = reader.GetObject("xml/strings/Home/Index/PreWrapper/Left");
Run Code Online (Sandbox Code Playgroud)
我希望它返回一个匿名对象(或动态对象,但我不太了解那些),看起来像
left.Title
left.Body
left.LinkText
left.LinkUrl
Run Code Online (Sandbox Code Playgroud)
要么
var xml = reader.GetObjcet("xml");
Run Code Online (Sandbox Code Playgroud)
并且能够像潜水一样潜入它
xml.strings.Home.Index....
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何创建这个对象.这甚至可能吗?
我认为你可以使用ExpandoObject类来近似这个,但很可能有更好的方法来做到这一点(比如使用更松散的类型语言,使用词典等)
.NET BCL当然没有内置任何功能.
编辑:我最近发现了这个,它可能适用于这种情况:ElasticObject.
| 归档时间: |
|
| 查看次数: |
5081 次 |
| 最近记录: |