20

这是我第一次在 C#/.NET 中做这样的事情,这让我想起了在 JavaScript 中使用 eval() 函数或动态脚本和生成 HTML 可以轻松完成的事情。我有一个取自用户输入的字符串,比如说string input = "foo". 现在我想使用该值"foo"作为我拥有的对象的属性名称,cover这样说:

string input = "foo";
//magic to convert string value to be used
//as a object property name goes here maybe...
var success = cover.foo;

在 C# 中有没有办法让我做这样的事情?可能使用反射?我已经尝试过,但总是返回一个并不能真正解决我的问题的对象。

4

1 回答 1

29

反思是正确的工具:

PropertyInfo pinfo = typeof(YourType).GetProperty("YourProperty");
object value = pinfo.GetValue(YourInstantiatedObject, null);
于 2013-10-09T15:42:18.470 回答