価値があるよりも面倒かもしれませんが。
ASP.Net MVC は、式を頻繁に使用して、厳密に型指定された方法でプロパティ情報を取得します。式は必ずしも評価されるとは限りません。代わりに、そのメタデータが解析されます。
これは MVC に固有のものではありません。Microsoft フレームワークで確立されたパターンを引用するために言及します。
式からプロパティ名と値を取得するサンプルを次に示します。
// the type being evaluated
public class Foo
{
public string Bar {
get;
set;
}
}
// method in an evaluator class
public TProperty EvaluateProperty<TProperty>( Expression<Func<Foo, TProperty>> expression ) {
string propertyToGetName = ( (MemberExpression)expression.Body ).Member.Name;
// do something with the property name
// and/or evaluate the expression and get the value of the property
return expression.Compile()( null );
}
次のように呼び出します (式が渡されることに注意してください)。
var foo = new Foo { Bar = "baz" };
string val = EvaluateProperty( o => foo.Bar );
foo = new Foo { Bar = "123456" };
val = EvaluateProperty( o => foo.Bar );