.NET编译文件注释获取方法及存储位置查询
关于.NET编译文件中注释的存储位置说明
嘿,我来帮你理清这个问题——首先得明确你说的注释类型,因为不同的注释在编译后的处理方式完全不一样:
普通代码注释(VB的
'、C#的////* */):这类注释是给开发者看的“临时笔记”,编译器在编译过程中会直接丢弃它们,不会把它们包含在最终的.exe或.dll程序集里,也不会存到资源文件或其他任何编译输出文件中。所以你用ILSpy/Reflector反编译时,是看不到这类普通注释的——如果你的代码里只是写了'get current os info这种普通注释,那它们根本没被编译进去,自然找不到。XML文档注释(VB的
'''、C#的///):这类注释是专门用来生成文档的结构化注释,如果你在项目设置里启用了“生成XML文档文件”的选项,编译器会把这些注释提取出来,生成一个和程序集同名的.xml文件(比如你的程序集是MyApp.dll,就会生成MyApp.xml),放在程序集的同一目录下。举个VB的实际例子:
''' <summary> ''' get current os info ''' checking operating system ''' </summary> Public Property CheckOs As String编译后生成的XML文件里会完整包含这些注释内容,ILSpy、Reflector这类反编译工具会自动检测同目录下的XML文件,把注释关联显示到对应的属性/方法上面——这就是你能在反编译工具里看到注释的核心原因。
额外补充
如果你确定自己写的是普通的'注释,但反编译时却看到了类似的内容,那大概率是反编译工具根据代码逻辑做的推测性注释,不是你原代码里的真实注释;或者可能你误把XML文档注释当成了普通注释。
总结一下:
- 普通代码注释:完全不会出现在编译输出中
- XML文档注释:存储在独立的XML文件中,和程序集配套
内容的提问来源于stack exchange,提问作者DVELPR
相关产品推荐
相关产品推荐

