c# - 使用 C# 验证 C# 语法

标签 c# .net validation

我正在寻找一个可以用来验证 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/

相关文章:

c# - ASP.NET MVC 项目构建在 travis-ci 上开始失败

c# - IEnumerable/Enumerable with Double/Int;初学者

C#字符串不包含可能吗?

c# - 具有未知数字的动态 Linq 和替换值?

c# - 从 DataGridView 中删除行时出现意外行为

Java LocalDate 输入验证

Javascript 字符串验证问题

c - C 中的数据验证

c# - 如何通过 XAML 中的 CommandParameter 传递当前聚焦的元素名称?

c# - Rijndael:C++加密,C#解密