如果Visual Studio 2010基于WPF,为什么我不能用反射器打开它?

Fit*_*aki 3 wpf reflector visual-studio-2010

如果Visual Studio 2010基于WPF,为什么我不能用反射器打开它?

换句话说,devenv.exe似乎是本机程序集,那么WPF UI代码在哪里?

ito*_*son 7

Visual Studio devenv.exe可执行文件确实是本机程序.但是,本机程序可以加载.NET运行时,从而托管Windows窗体和WPF组件.事实上,Visual Studio一直都是这样做的.甚至在VS2010为其编辑器和shell采用WPF之前,各种Visual Studio设计器都是在Windows Forms中实现的.如果你进入Common7\IDECommon7\IDE\PrivateAssemblies目录,你会发现许多设计器DLL可以在Reflector中查看(例如Microsoft.VisualStudio.ORDesigner.Dsl.dllLINQ to SQL设计器).

因此,Visual Studio的新WPF位只是托管在本机可执行文件中的另一组托管程序集.我不确定哪个特定的程序集支持WPF位 - 说实话,可能有几十个.但是看一下调试器中的VS进程,我会说Microsoft.VisualStudio.Editor.dll(它存在于GAC中,而不是VS安装目录中)将是一个很好的起点.