私が解決しようとしている問題は、プロパティ名を文字列として受け取り、そのプロパティに割り当てられた値を返すメソッドを記述する方法です。プロパティ名に動的にアクセスするプロパティ名
私のモデルクラスは次のように宣言されています:
public class Foo
{
public int FooId
public int param1
public double param2
}
と私の方法の中から、私は、このような表現を使用して、この
var property = GetProperty("param1)
var property2 = GetProperty("param2")
私は現在、これを行うにしようとしていますに似た何かをしたいですas
public dynamic GetProperty(string _propertyName)
{
var currentVariables = m_context.Foo.OrderByDescending(x => x.FooId).FirstOrDefault();
var parameter = Expression.Parameter(typeof(Foo), "Foo");
var property = Expression.Property(parameter, _propertyName);
var lambda = Expression.Lambda<Func<GlobalVariableSet, bool>>(parameter);
}
このアプローチは正しいですか?もしそうなら、thダイナミックなタイプですか?
答えは正しく、これをあまりにも複雑にしていました。ソリューションは現在、次のとおりです。
public dynamic GetProperty(string _propertyName)
{
var currentVariables = m_context.Foo.OrderByDescending(g => g.FooId).FirstOrDefault();
return currentVariables.GetType().GetProperty(_propertyName).GetValue(currentVariables, null);
}
System.Reflection.PropertyInfoを使用して、特定のタイプのプロパティの値をルックアップすることができます。 http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.aspx – Chris