C#:通过反射获取值(value)

标签 c# reflection

我想知道是否可以做这样的事情:

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/

相关文章:

Haskell:显示 Hlist 上所有 "showable"的元素

c# - 具有自定义 map 提供程序的 GMap.NET.GMapControl?

c# - C# 如何处理调用结构上的接口(interface)方法?

c# - View 未使用 Toolbar ItemsSource 解析

c# - 无法加载文件或程序集 'System.IO, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一

php - ReflectionException "Cannot access non-public member",但属性可访问?

java - 如何让java反射也采用依赖类?

c# - 比较实体

java - 当我们只有 .class 文件时如何转换对象?

c# - 如何在 web.config 中的授权标记中创建异常