我从某个程序集中引用了类型和类。
var type = typeof(SomeNamespace.SomeClass);
有没有办法获得关于编写这个类的编程语言的元数据?C# 还是 VB 还是 F#?
所以结果我想要这样的东西
var programmingLanguage = getLanguage(type); // C#
升级版:
我可以分析用于此类的程序集或命名空间吗?也许这可以成为寻找语言的线索?
UPD2:
到目前为止,我可以使用它(这只是 VB 检测的一个示例)
var referenced = type.Assembly.GetReferencedAssemblies()
.Where((r) => r.Name.Contains("VisualBasic"));
VB 添加了 Microsoft.VisualBasic。F# 还添加了它自己的程序集,C++ 声明了很多我可以检测到的“自用”类型。所以这是“一种方式”。我知道这不容易出错。并且会有一些虚假案例。那么有没有更好的呢?