1

我想通过另一个项目获取有关某个项目的字段、函数和线程的信息。

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

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

我应该怎么办?

4

1 回答 1

4

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

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

不要期望能够使用反射从另一个应用程序的内存空间中嗅出值,这不是反射所做的。

于 2013-02-27T12:05:29.087 回答