我想知道是否可以做这样的事情:
class brand
{
string name;
}
class car
{
string carname;
brand carbrand;
}
现在我有一个像这样的字符串和一个汽车类型的实例化对象:
car carobject = new car();
string brandNameOfCar = DoSomeMagicalReflectionStuff(car, "car.brand.name");
“DoSomeMagicalReflectionStuff”方法会是什么样子?
甚至有可能做这样的事情:
car carobject = new car();
string brandNameOfCar = DoSomeMagicalReflectionStuff(car, "car.brand.name.ToFormatedString()");
谢谢!
最佳答案
我没有对此进行测试,但这里应该可以工作:
car c = new car();
object val = typeof(car).GetField("carbrand", BindingFlags.Private).GetValue(c);
string result = (val as brand).ToFormattedString();
关于C#:通过反射获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1427819/