C#运行时的反射

时间:2013-02-27 12:00:38

标签: c# reflection

我希望通过另一个项目获得有关某个项目的字段,函数和线程的信息。

作为我想要探索的示例项目,我创建了一个初始化为1的字段int x。 Main调用函数将x的值更改为2。 我把Main塞进了一个无限循环中。 我跑了这个项目。

第二个项目: 获取第一个项目的EXE文件的路径,然后加载程序集。 通过反思,我得到了部门,职能和领域的名称。 我试图通过函数getValue打印字段x的值。而不是打印2,1,打印出来。 即,反射是指编译时的值,而不是运行时。

我该怎么办?

1 个答案:

答案 0 :(得分:4)

您无法在其他进程中获取内存中的新值。

使用Reflection,您可以加载该程序集,创建该类的实例并显式调用Main,然后检查int的值,因为代码将由您的进程运行。

不要希望能够使用Reflection从另一个应用程序的内存空间中嗅探这些值,这不是Reflection所做的。