3
我有一個XML文件,我想將其轉入POCO對象列表。LINQ to XML to POCO對象
我有以下工作代碼來讀取XML並從中創建對象。我只想檢查這是做這件事的好方法,我不會錯過任何竅門。特別是關於嵌套的Linq查詢。
XDocument xmlDoc = XDocument.Load(path);
var q = from file in xmlDoc.Descendants("File")
select new ImportDefinition()
{
Name = file.Attribute("Name").Value,
TypeName = file.Attribute("TypeName").Value,
ColumnMappings =
(
from map in file.Descendants("ColumnMap")
select new ColumnMap()
{
DatabaseColumn = new Column()
{
Name = map.Element("DatabaseColumn").Attribute("Name").Value
}
}
).ToList<ColumnMap>()
};
List<ImportDefinition> def = q.ToList<ImportDefinition>();
感謝
AFAIK .Cast <>不調用定製的轉換運算符 - 還是呢? – dtb 2010-08-20 17:04:45
@dtb:如果沒有,那麼這是行不通的。沒有測試過,但本來想象它只是一個擴展,它可以像IEnumerable那樣做 Cast(IEnumerable targets){foreach(T target in targets)yield return(U)target; } –
2010-08-20 17:44:07
我相信這正是Enumerable.Cast所做的,因爲轉換爲通用參數'U',afaik不會查找自定義轉換運算符,所以它可能不會工作。但我還沒有測試。 – dtb 2010-08-20 18:26:11