c#运行时反射



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

作为我想要探索的一个示例项目,我创建了一个初始化为1的字段int x。Main调用将x的值更改为2的函数。我让主河陷入了无尽的循环。我负责这个项目。

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

我该怎么办?

你不能获得新的值,它在内存中,在另一个进程中。

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

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

最新更新