Kev*_*non 2 c# java dll package roslyn
我的问题纯粹是理论上的,如果这是一个肯定的答案,我想稍后实施。
是否可以使用 Roslyn 创建代码分析并将其存储在 dll 中,然后在基于 JVM 的项目中使用该 dll 中的内容?我知道 Visual C# 和 Java 语言之间有一些相似之处。但目前只能分析 C# 和 VB(我认为 F# 已暂时搁置),当它们具有确切的功能(例如循环)时,是否可以将代码分析从 C# 应用于 Java。
从这篇文章中,我了解到可以使用 Java 调用 dll。我很高兴知道,当我使用 VB 或 C# 浏览语法树时,它可以对 Java 甚至与 C# 更相似的 Kotlin 执行相同的操作。
我认为你误解了罗斯林的角色。目的是向这些语言的开发工具的作者公开 C# 和 VB.NET 编译器所拥有的有关程序结构的大量信息。引用埃里克·利珀特的话:
Roslyn 是一个可从 C#、VB 或其他托管语言使用的类库。其目的是能够分析 C# 和 VB 代码。
和
它不是一种供客户自行扩展 C# 或 VB 语言的机制;而是一种供客户自行扩展 C# 或 VB 语言的机制。它是一种分析现有语言的机制。
Roslyn 肯定不是一个分析 Java 的机制,因为它不是为了分析 Java 而编写的。它是为了分析一种有点相似的语言 C# 而编写的(这种相似性是设计使然,语言作者希望现有的 C/C++/Java 程序员对它有些熟悉)。然而,除了最琐碎的 Java 片段之外的所有片段都不是有效的 C#。它不仅仅是诸如通用约束和通配符之类的深奥功能,而且还有诸如Equals
两者具有不同大小写之类的核心方法。Roslyn 不太可能分析任何大小或复杂性的 Java 片段。