Я хочу написать обобщенный метод, который возвращает XML после передачи коллекции типа T. Я пробовал код ниже, но не работает должным образом. Любые рекомендации по повышению этого, чтобы включить атрибуты элементов, высоко оценены. БлагодаряПреобразование общей коллекции в XML в C#
public XElement GetXElements<T>(IEnumerable<T> colelction,string parentNodeName) where T : class
{
XElement xml = new XElement(typeof(T).GetType().Name);
foreach(var x in typeof(T).GetProperties())
{
var name = x.Name;
var value = typeof(T).GetProperty(x.Name).GetValue(x);
xml.Add(new XElement(name,value));
}
return xml;
}
Например, если я посылаю коллекцию как ниже описанным выше способом,
var col = new List<Employee>()
{
new Employee
{
FirstName = "John",
Sex= "Male"
},
new Employee
{
FirstName = "Lisa",
Sex= "Female"
},
};
и вызвать метод, как GetXElements<Employee>(col,"Employees")
я ожидаю получить XML, как показано ниже
<?xml version="1.0" encoding="utf-8"?>
<Employees>
<Employee>
<FirstName>John</FirstName>
<Sex>Male</Sex>
</Employee>
<Employee>
<FirstName>Lisa</FirstName>
<Sex>Female</Sex>
</Employee>
<Employees>
Ваш метод только имеет один параметр - почему вы проходящее два аргумента? –
Почему вы не используете сериализацию? – whymatter
http://stackoverflow.com/questions/781442/serialize-object-to-xmldocument –