Это связано с моим предыдущим вопросом Преобразование общего списка в C # в список, реализующий класс
У меня есть следующий код:
public abstract class DataField
{
public string Name { get; set; }
}
public class DataField<T> : DataField
{
public T Value { get; set; }
}
public static List<DataField> ConvertXML(XMLDocument data) {
result = (from d in XDocument.Parse(data.OuterXML).Root.Decendendants()
select new DataField<string>
{
Name = d.Name.ToString(),
Value = d.Value
}).Cast<DataField>().ToList();
return result;
}
Это работает, однако я хотел бы иметь возможность изменить выделенную часть запроса LINQ так, чтобы она была такой:
select new DataField<[type defined in attribute of XML Element]>
{
Name = d.Name.ToString(),
Value = d.Value
}
Это просто плохой подход? Является ли это возможным? Есть предложения?