私は以前にここで見つけることができる質問をしました、そして私は受け入れられた答えのコードがクエリなし で通常のプログラミングで行われることができるかどうか疑問に思いました
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)
)
);
}
}
前もって感謝します