如果源代码不可用,是否有方法确定.NET程序集的原始语言?
答案 0 :(得分:8)
不是,但你有时可以猜一猜。
例如,如果你有一个包含匿名类型的VB.NET程序集,程序集中编译器生成的名称将如下所示:
VB$AnonymousType_T<T0, T1>
C#程序集中的匿名类型如下所示:
<>f__AnonymousType0<....>
不同的编译器会实现这些略有不同的东西。 C ++ / CLI程序集在程序集中往往有很多类型,带有“有趣”的名称(对于属于全局作用域的函数等等)。
Visual Basic应用程序还引用了Microsoft.VisualBase程序集(尽管任何.NET应用程序在技术上都可以引用任何程序集,因此这不是100%指标。)
答案 1 :(得分:2)
您可以通过查看它引用的程序集来猜测。例如,如果您看到Microsoft.CSharp
或Microsoft.VisualBasic
中的一个,则可能会给您一个很大的提示。
答案 2 :(得分:1)
不是真的,因为它们都是粗略地编译成同一个IL。