WEB开发网
开发学院软件开发C语言 C# 4 中的 Expando 对象 阅读

C# 4 中的 Expando 对象

 2010-09-30 22:46:55 来源:WEB开发网   
核心提示: 在 .NET Framework 4 中,动态对象提供了替代方法 - 一个更简单的 API,C# 4 中的 Expando 对象(4),可基于部分原始数据动态创建类型,以下 XML 字符串是一个简单的示例:<Persons><Person><FirstName>

在 .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; 
}

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:Expando 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接