C# 4 中的 Expando 对象
2010-09-30 22:46:55 来源:WEB开发网在 .NET Framework 4 中,动态对象提供了替代方法 - 一个更简单的 API,可基于部分原始数据动态创建类型。以下 XML 字符串是一个简单的示例:
<Persons>
<Person>
<FirstName> Dino </FirstName>
<LastName> Esposito </LastName>
</Person>
<Person>
<FirstName> John </FirstName>
<LastName> Smith </LastName>
</Person>
</Persons>
在 .NET Framework 3.5 中,若要将其转换为可编程的类型,您可能要使用类似图 2 中的代码。
图 2 使用 LINQ-to-XML 将数据加载到 Person 对象中
var persons = GetPersonsFromXml(file);
foreach(var p in persons)
Console.WriteLine(p.GetFullName());
// Load XML data and copy into a list object
var doc = XDocument.Load(@"..\..\sample.xml");
public static IList<Person> GetPersonsFromXml(String file) {
var persons = new List<Person>();
var doc = XDocument.Load(file);
var nodes = from node in doc.Root.Descendants("Person")
select node;
foreach (var n in nodes) {
var person = new Person();
foreach (var child in n.Descendants()) {
if (child.Name == "FirstName")
person.FirstName = child.Value.Trim();
else
if (child.Name == "LastName")
person.LastName = child.Value.Trim();
}
persons.Add(person);
}
return persons;
}
更多精彩
赞助商链接