強く型付けされておらず、リフレクションに依存している作業用セットアップがあります。私はクラスを持っているlambda式としてのプロパティ
は、
class Person{
public string FirstName {get ; set;}
public string LastName {get; set;}
public int Age {get; set;}
...
// some more public properties
}
と
class CellInfo {
public string Title {get; set;}
public string FormatString {get; set;}
}
を言うと、私はそれは、プロパティの名前と簡単な辞書といくつかの情報についてです。この
Dictionary<string, CellInfo> fields = new Dictionary<string, CellInfo>();
fields.Add("FirstName", new CellInfo {Title = "First Name", FormatString = "Foo"});
fields.Add("LastName", new CellInfo {Title = "Last Name", FormatString = "Bar"});
などの辞書を持っていますそれら。 は、私は人のインスタンスを処理して別のモジュールに辞書を渡すと、私は
Dictionary<string, CellInfo> fields = SomeMethodToGetDictionary();
foreach(Person p in someCollection)
{
foreach(var field in fields)
{
object cellValue = type(Person).GetProperty(field.Key).GetValue(p, null);
// use cellValue and info on field from field.Value somewhere.
...
}
}
フィールド名の文字列を渡すと、リフレクションを使用するこの方法は、作品
を行いますが、やって強く型付けされた方法がある場合、私は思っていましたこの。
私が念頭に置いていたことは、人を対象にEvalExpression
を使用してプロパティ値を取得何とか、この
fields.Add("FirstName", new CellInfo
{
Title = "First Name",
FormatString = "Foo",
EvalExpression = p => p.FirstName
});
と使用時のようなものをLINQ式を保存性質を持っていました。私はどこから始めるべきか、このような財産を評価することができるように構文がどんなものになるかという手掛かりはありません。私は、デリゲートと式ツリーを機能させるのが初めてで、検索する正しいキーワードがわからない。私の記述がはっきりしていることを望む。そうでない場合は、私に知らせてください。 援助をいただければ幸いです。
誰もがCに気遣いますなぜdownvote? – Aliostad
これは、最初の行で(要求とは対照的に)コマンドである可能性があります。 – MikeKulls