VS 2010名称不符合CLS标准

时间:2013-10-06 12:40:48

标签: vb.net visual-studio-2010

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

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

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

1 个答案:

答案 0 :(得分:5)

CLSCompliant在这种情况下不起作用。问题是字段名Invoice address包含空格,因此标识符不符合CLS(Why is this name with an underscore not CLS Compliant?)。

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

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

<Field name="non_CLS_Compliant_Name">
 <DataField>non CLS Compliant Name</DataField>
 </Field> 

在代码中,您应该用下划线(_)替换名称中的所有不合规字符,并在开头添加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 
相关问题