好的,这个标题有点糟糕,但我想不出比这个更好的了(也许其他人可以?)
所以我有几个关于这个主题的问题。我想要做的是创建一个程序,它可以接受一个对象,并使用反射来列出它的所有属性,方法,构造函数等。然后我可以在运行时操作这些对象,以测试,调试和弄清楚我的一些类/程序在运行时到底在做什么(其中一些将是windows服务,可能安装在机器上,而不是在VS的debug中运行)。
所以我会给程序提供一个钩子,这个程序可以从本地机器(仅)获得主对象的一个实例,因此可以看到在其中运行的所有子对象。(为了安全起见,程序可能需要使用arg启动,以公开该挂钩)。
“反射机”将允许运行时操作和询问。
这听起来可能吗?
程序是否必须提供一个钩子,或者“反射机器”是否可以接受一个EXE并(如果它知道它正在使用的所有类),创建一个要使用的对象?
我知道你可以在运行时导入DLL,这样它就可以知道所有种类的类,但是你能导入单独的类吗?也就是说,假设我有一个没有编译成DLL的项目'Y‘,但我想在它上面使用“反射机器”,我能指向那个目录并抓取能够引用这些类的文件吗?
编辑:我很乐意尝试自己开发它,但我已经有一个很长的项目列表,我想做的项目已经开始了。既然已经有了很好的选择,为什么还要重新发明轮子呢?
发布于 2008-11-17 23:32:44
试着看看Crack.NET。它用于在WPF/WinForms上执行运行时操作和询问,但其源代码是可用的,如果它还不能满足您的需求,那么它可能是一个很好的开始。
发布于 2008-11-17 23:41:27
听起来,Corneliu Tusnea的Hawkeye可能与您正在寻找的对象/属性/等等的运行时询问很接近。他称之为.NET运行时对象编辑器。我不确定我链接到上面的主页还是CodePlex project是最好的起点。
我认为现在有点过时了,但是有一个earlier version of it on CodeProject,你可以在那里看到他是如何做的和做了什么的源代码。
发布于 2008-11-17 23:35:18
如果我正确理解您所说的话,Powershell实际上几乎完成了所有这些工作。
https://stackoverflow.com/questions/297328
复制相似问题