2011-10-12 88 views
2

我在ASP中遇到C#问题。由于其保护级别而无法访问功能

我得到下面的一行代码开头的错误“的String []” ......

Label DT33 = (Label)MainContent2.FindControl("data_text"); 

string[] lines = Strings.Split(DT33.Text, "<br>"); 
num = lines.Length;The error reads.... 

编译错误 说明:该服务所需资源的编译过程中出现错误请求。请查看以下具体的错误细节并适当修改您的源代码。

编译器错误信息:CS0122:“System.Linq.Strings”不可访问由于其保护级别

我指定了以下名称空间....

using Microsoft.VisualBasic; 

随着许多其他。这是一个.net 3.5应用程序,我在这一点上没有想法。

感谢,

回答

4

我想你实际上是说:

Label DT33 = (Label)MainContent2.FindControl("data_text"); 

string[] lines = DT33.Text.Split(new string[] {"<br>"}, StringSplitOptions.None); 
num = lines.Length;

你之所以得到(略带神秘的)错误信息因为System.Linq显然有internal类叫做Strings

+0

这工作谢谢。在我可以接受答案之前需要再等几分钟。 – htm11h

3

你的问题是以下行:

string[] lines = Strings.Split(DT33.Text, "<br>"); 

您已经增加了一个额外的“上String。我猜你还包括System.Linq这显然有一个私人/内部类(这是你无法访问),称为Strings。因此,由于保护级别,无法访问关于Strings的错误消息。

你只需要出错的行更改为:

string[] lines = DT33.Text.Split(new string[] { "<br>" }, 
           StringSplitOptions.None); 

,你应该是好去。

+0

思想

更多细节,这是它,但它报告这个错误...... CS1502:为了获得最佳重载方法匹配“string.Split(PARAMS的char [])”具有一些无效参数 – htm11h

+0

@ marc11h - 我的手指比我的大脑快。修复使用适当的过载。 –

0

我想你想

string.Split(.....) 

而不是字符串

1

您正在尝试使用Microsoft.VisualBasic.Strings.Split,但是您的用法与另一个可用的Strings类相冲突。

尝试完全限定您的方法调用。

string[] lines = Microsoft.VisualBasic.Strings.Split(text, separator); 

不过,你也应该考虑使用可用于System.String直接string.Split实例方法。评估其行为并查看是否可以使用它,因为在C#中使用基本BCL方法比使用或多或少与Visual Basic特定的方法更习惯。

http://msdn.microsoft.com/en-us/library/y7h14879.aspx

所以,你可能有类似

string[] lines = yourText.Split(new string[] { "<br>" }, StringSplitOptions.RemoveEmptyEntries); 
0

以我为例,我试图使用LINQ动态查询库或System.Linq.Dynamic.DynamicExpression。你可以从这个link得到它。在ScottGu的博客here

相关问题