将Windows应用程序项目编译为EXE后,类,方法和变量名称是否包含在MSIL中?
对于混淆 - 更少的名称,更难逆向工程.
而对于性能 - 更短的名称,更快的访问.
例如,如果通过名称调用方法:
保持名称简短,更好的命名查找性能.
保持名称神秘,反编译更难.
Jon Skeet.. 20
是的,他们在IL - 启动反射器,你会看到它们.如果他们没有最终进入IL,你就无法将它们作为库来构建.(是的,您可以引用.exe文件,就好像它们是类库一样.)
但是,这一切都在JIT中解决了一次.
保持名称可读,以便您将来能够维护代码.性能问题不太可能产生任何可衡量的差异,如果你想混淆你的代码,不要在源代码级别(你是那个读代码的那个)做它 - 用专门的方法来做混淆.
编辑:至于包括什么 - 为什么不启动Reflector或ildasm并找出?从内存中,您丢失了本地变量名称(如果您构建它,它们位于pdb文件中),但这就是它.私有方法名称和私有变量名称仍然存在.
是的,他们在IL - 启动反射器,你会看到它们.如果他们没有最终进入IL,你就无法将它们作为库来构建.(是的,您可以引用.exe文件,就好像它们是类库一样.)
但是,这一切都在JIT中解决了一次.
保持名称可读,以便您将来能够维护代码.性能问题不太可能产生任何可衡量的差异,如果你想混淆你的代码,不要在源代码级别(你是那个读代码的那个)做它 - 用专门的方法来做混淆.
编辑:至于包括什么 - 为什么不启动Reflector或ildasm并找出?从内存中,您丢失了本地变量名称(如果您构建它,它们位于pdb文件中),但这就是它.私有方法名称和私有变量名称仍然存在.