Вы не можете возвращать экземпляры анонимных типов в качестве возвращаемого значения функций или свойств (из моей последней информации. Быстрый поиск в Google не дал никаких признаков того, что это изменилось до сих пор).Это означает, что вы не можете составить список анонимного типа, который вы создаете с помощью new {VariableName1 = "123", VarName2 = "456"}
.Вы можете определить класс или структуру, в которой есть необходимые члены, такие как переменная, индекс, имя, путь.Затем, когда вы строите свой список, вместо создания oject с new {...}
, вы создаете один из именованного типа, то есть:
Определите это где-нибудь:
class MyBunchOfVariables
{
public string Variable ;
public string Index ;
public string Name ;
public string Path ;
public string Interval ;
public string ConnectorId ;
public string Type ;
public string Factor ;
public string MaxValue ;
}
Измените тип свойствасоответственно:
public class Component
{
// Property of class Component
public string Komponentenart { get; set;}
public int KomponentenID { get; set;}
public string KomponentenArtikelnummer { get; set;}
public MyBunchOfVariables Variablen { get; set}; // ### CHANGED TYPE ###
}
А затем:
var variablen = (from element in xmlDoc.Descendants("variable")
select
new MyBunchOfVariables
{
Variable = (string)element.Attribute("ID"),
Index = (string)element.Attribute("index"),
Name = (string)element.Attribute("name"),
Path = (string)element.Attribute("path"),
Interval = (string)element.Attribute("interval"),
ConnectorId = (string)element.Attribute("connectorId"),
Type = (string)element.Attribute("type"),
Factor = (string)element.Attribute("factor"),
MaxValue = (string)element.Attribute("maxvalue")
}
).ToList();