【发布时间】:2010-09-22 18:39:41
【问题描述】:
好吧,所以标题有点烂,但我想不出更好的东西(也许其他人可以?)。
所以我有几个关于这里的主题的问题。我想做的是创建一个程序,它可以获取一个对象并使用反射来列出它的所有属性、方法、构造函数等。然后我可以在运行时操作这些对象来测试、调试和弄清楚我的一些类/程序在运行时正在执行,(其中一些将是 Windows 服务,可能安装在机器上,而不是在 VS 的调试中运行)。
所以我会为程序提供一个钩子,从本地机器(仅)这个程序可以获得主对象的一个实例,因此可以看到所有在其中运行的子对象。 (为了安全起见,程序可能需要以 arg 启动以公开该钩子)。
“反射机器”将允许运行时操作和询问。
这听起来可能吗?
程序是否必须提供一个钩子,或者“反射机器”是否可以获取一个 EXE 并(如果它知道它正在使用的所有类)创建一个要使用的对象?
我知道您可以在运行时导入 DLL,以便它了解各种类,但是您可以导入单个类吗? IE。假设我有未编译为 DLL 的项目“Y”,但我想在其上使用“反射机”,我可以指向该目录并获取文件以引用这些类吗?
编辑:我很想尝试自己开发它,但我已经有了很长的项目清单,我想做并且已经开始了。既然已经有很多选择可供选择,为什么还要重新发明轮子。
【问题讨论】:
-
我不知道为什么这个问题被否决了。这似乎是一个有趣的想法。投票赞成。
标签: c# reflection