9

我正在使用 ANTLR V3 为 DSL 语言生成 C# 代码。

生成的代码在 laxer 和 parser 类上都包含属性 CLSCompliant,这会导致生成警告,因为我的项目不符合 CLS。

  1. 如何让 ANTLR 生成没有 CLSCompliant 属性的代码?
  2. 是否可以更改 C# 3 语法的字符串模板?
4

2 回答 2

15

我猜你现在已经想出了一个简单的解决方法,它包括禁用相应的警告(并且让你免于摆弄模板)。

只需将以下内容添加到您的语法文件中

@parser::header {#pragma warning disable 3021}
@lexer::header {#pragma warning disable 3021}

HTH 加布里埃尔

于 2012-01-03T18:56:15.163 回答
6

与其抑制警告,不如使用以下属性明确声明程序集不符合 CLS 是正确的AssemblyInfo.cs

[assembly: CLSCompliant(false)]

这也将删除编译时的警告。

于 2018-01-29T15:55:05.570 回答