プロパティ名と一致するデータを区切り文字のファイルに書きたい場合は、C#objectdumperヘルプファイルのコードをコピーしましたが、すべて正常に機能しているようですが、それを使用するのに十分な反射があります。私が心配しているのは、誤った値が間違った列に置かれていることです。リフレクションを使用してデリミットファイルにクラスを保存する
Field1,Field2
Val1,Val2
Val1,Val2
Val2,Val1 << Could this ever happen ?
また、このコードは何を意味していますか?以下
f != null ? f.GetValue(this) : p.GetValue(this, null)
コード:
public string returnRec(bool header, string delim)
{
string returnString = "";
bool propWritten = false;
MemberInfo[] members = this.GetType().GetMembers(BindingFlags.Public | BindingFlags.Instance);
foreach (MemberInfo m in members)
{
FieldInfo f = m as FieldInfo;
PropertyInfo p = m as PropertyInfo;
if (f != null || p != null)
{
if (propWritten)
{
returnString += delim;
}
else
{
propWritten = true;
}
if (header)
returnString += m.Name;
else
{
Type t = f != null ? f.FieldType : p.PropertyType;
if (t.IsValueType || t == typeof(string))
{
returnString += f != null ? f.GetValue(this) : p.GetValue(this, null);
}
}
}
}
return returnString;
}
ありがとう、おそらく秒を節約するだけですが、私はこれを使用します。 –