我希望通过另一个项目获得有关某个项目的字段,函数和线程的信息。
作为我想要探索的示例项目,我创建了一个初始化为1的字段int x。 Main调用函数将x的值更改为2。 我把Main塞进了一个无限循环中。 我跑了这个项目。
第二个项目: 获取第一个项目的EXE文件的路径,然后加载程序集。 通过反思,我得到了部门,职能和领域的名称。 我试图通过函数getValue打印字段x的值。而不是打印2,1,打印出来。 即,反射是指编译时的值,而不是运行时。
我该怎么办?
答案 0 :(得分:4)
您无法在其他进程中获取内存中的新值。
使用Reflection,您可以加载该程序集,创建该类的实例并显式调用Main,然后检查int的值,因为代码将由您的进程运行。
不要希望能够使用Reflection从另一个应用程序的内存空间中嗅探这些值,这不是Reflection所做的。