在C#中将字符串计算为属性

时间:2011-06-15 20:11:27

标签: c# properties

我有一个存储在字符串中的属性...说对象Foo有一个属性Bar,所以要获取我要调用的Bar属性的值..

Console.Write(foo.Bar);

现在说我将"Bar"存储在字符串变量中......

string property = "Bar"

Foo foo = new Foo();

如何使用foo.Bar获取property的值?

我如何在PHP中使用

$property = "Bar";

$foo = new Foo();

echo $foo->{$property};

3 个答案:

答案 0 :(得分:7)

Foo foo = new Foo();
var barValue = foo.GetType().GetProperty("Bar").GetValue(foo, null)

答案 1 :(得分:2)

你会使用反射:

PropertyInfo propertyInfo = foo.GetType().GetProperty(property);
object value = propertyInfo.GetValue(foo, null);

调用中的null用于索引属性,而不是您拥有的属性。

答案 2 :(得分:2)

你需要使用反射来做到这一点。

这样的事应该照顾你

foo.GetType().GetProperty(property).GetValue(foo, null);