2013-02-12 114 views
2

我使用CodeDom编译器来动态编译用户定义的脚本。我们正在使用C#脚本作为标准,但我想知道是否有办法支持所有CLI语言。为此,我必须检测在此特定源代码中使用的CLI语言。CLI语言检测

是否有一些优雅的方式如何从源代码中只检测CLI语言?

由于

+2

有非常多的CLI语言。 http://en.wikipedia.org/wiki/List_of_CLI_languages – SLaks 2013-02-12 21:22:54

+1

为什么你必须从源代码中检测到它,而不是从其他地方获取这些信息?我真的不想让程序猜测。 – delnan 2013-02-12 21:30:39

+1

当然,获取这些信息当然是一种选择。我只是想知道是否有一些隐藏的.NET功能,我从来没有听说过。我认为将语言限制为仅支持CodeDOM(C#,Visual Basic,C++,J#和JScript)的语言是合理的。 – Biggles 2013-02-12 21:35:22

回答

0

只有3种语言的量,框架提供了一个CodeDomProvider:C#,JScript和VB。因此,如果框架提供了任何直接解析“任何语言”的方法,它只能支持这三种语言。我不认为它确实如此。

您可能想尝试使用CodeDomProvider的所有三个实现来解析代码,并保持第一个成功。它将需要十几行代码。

我认为这可能是你最好的尝试。

的文档CodeDomProvider:http://msdn.microsoft.com/en-us/library/ds075xdx.aspx 的文档CodeDomProvider.Parse:http://msdn.microsoft.com/en-us/library/system.codedom.compiler.codedomprovider.parse%28v=vs.110%29.aspx