我之前问过一个问题,可以在这里找到,我想知道接受的答案的代码是否可以在没有
Linq
查询的情况下在正常编程中完成,任何示例都将不胜感激。
请注意,这是我开始实施它的方式,并且在实施过程中遇到了一些问题。我已经设法通过反射而不使用属性来获取私有字段值,这有问题吗?我应该总是通过反射中的属性来获取值吗?
代码:
public static class Extensions
{
public static XElement ToXml<T>(this T obj)
{
Type type = typeof(T);
return new XElement("Class",
new XElement(type.Name,
from pi in type.GetProperties()
where !pi.GetIndexParameters().Any()
let value = (dynamic)pi.GetValue(obj, null)
select pi.PropertyType.IsPrimitive ||
pi.PropertyType == typeof(string) ?
new XElement(pi.Name, value) :
Extensions.ToXml(value)
)
);
}
}
提前致谢