你怎么知道,如果反编译组件是写在C#或VB.net?
Answer 1:
我不知道在清单/属性的任何明确的“我是编译......”的信息。 也许你可以使用特征检测(特别是,事情怎么样匿名类型实现,和模块级方法),但是:
- 在大多数情况下,它不应该的问题
- 你不知道的编译器可能出现类似的,给你错误的答案
- 并不是所有的IL来自编译器; 它可以被组装从原料IL,或者与IL作为源语言,或经由元编程技术
就个人而言,我会强烈建议避免对源语言的任何依赖
Answer 2:
我依稀记得有是这是在VB项目自动引用的应用组件,而不是C#项目。 我说的是.NET 1.1时代(Visual Studio 2003中)。 它使访问资源管理器外壳的部分很容易的。 我一直在寻找,但一直没能找到它(将编辑,如果我还记得那是什么)。 它可能已被废弃在以后的视觉工作室/下降,但是这将是对原来的VB(思想C#组件也可以参考它)一个非常强烈的信号。
编辑 :正如汉斯在他的评论中提到的组件Microsoft.VisualBasic程序。
除此之外,它可能是通过查找所使用的不同版本的C#VS VB编译器在编译不同的通用语言结构IL的模式是可行的。
如果你想要的是看到源代码的近似编译的程序集。 .NET反编译器,如ILSpy,.net反射或dotPeek做了很好的工作,如果原来的组件不混乱。
文章来源: Decompiled assembly, which programming language was used