VS 2010名称不符合CLS标准

use*_*468 2 vb.net visual-studio-2010

我已经尝试了几种方法来找到解决这个问题的方法,并且空白了.因此这个帖子.我正在使用visual studio 2010并使用VB构建应用程序,当我运行(调试)时,我收到以下错误.

数据集"DataSet1"中的字段名称为"发票地址".字段名称必须是符合CLS的标识符.

其中有很多指向数据集,坦率地说,我不确定如何解决它.我<Assembly: CLSCompliant(False)>在AssemblyInfo.vb中使用过:但仍然出现错误.我在某处读到这行将被放入AssemblyInfo.cs文件中.我没有其中之一.任何有关这方面的帮助将不胜感激.谢谢

Iva*_*anH 5

CLSCompliant不会在这种情况下工作.问题是字段名称Invoice address包含空格,因此标识符不符合CLS(为什么此名称带有下划线而不符合CLS?).

问题中未说明上下文,但此错误通常发生在RDK报告中.

报表设计器通过重命名字段来解决问题

<Field name="non_CLS_Compliant_Name">
 <DataField>non CLS Compliant Name</DataField>
 </Field> 
Run Code Online (Sandbox Code Playgroud)

在代码中,您应该用下划线(_)替换名称中的所有不符合要求的字符,并在开头添加ID以解决第一个字符的问题

Dim RgxGlobal As New System.Text.RegularExpressions.Regex("[^\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\p{Cf}]")
Dim RgxStart As New System.Text.RegularExpressions.Regex("\A[^\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}]")
Dim NewFieldName As String = RgxGlobal.Replace(ColName, "_")
If RgxStart.IsMatch(NewFieldName) Then NewFieldName = "ID" & NewFieldName 
Run Code Online (Sandbox Code Playgroud)

  • 但真正的问题是VS Designer为什么会自动生成有bug的代码.难道不是那么可悲吗? (3认同)