我正在寻找一个可以用来验证 C# 语法的函数(也许 .Net-Framework 中有一个函数)。它也可以是具有内置验证功能的 C# 解析器。
背景:我正在构建一个小型代码生成器,用户可以在其中输入一些定义并取回完整实现的属性等,但我想检查用户是否输入了正确的 C# 以及结果是否也正确。
编辑:
我不想编译代码,它可能是不完整的代码。因此,例如用户可以输入一个代码片段,其中包含他的代码中的类,我不知道,我只想验证语法,而不是“内容”
示例
输入:
Car car = new Car();
car.drive("50");
输出:
Same as input, because it's valid and nothing to do.
输入:
Car car = new Car()
car.drive("50");
输出:
Message that it is not valid, beause of missing ';'
等等
我不知道 Car
类,因此无法编译它,我只想检查语法。
最佳答案
如何使用 C# 编译器以编程方式编译代码:
http://support.microsoft.com/kb/304655
..它作为编译过程的一部分进行验证。您可以获得这样的错误列表(来自文章......令人惊讶,因为它有点困惑):
foreach(CompilerError CompErr in results.Errors)
{
textBox2.Text = textBox2.Text +
"Line number " + CompErr.Line +
", Error Number: " + CompErr.ErrorNumber +
", '" + CompErr.ErrorText + ";" +
Environment.NewLine + Environment.NewLine;
}
关于c# - 使用 C# 验证 C# 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6998364/