由于其保护级别,功能无法访问

时间:2011-10-12 18:28:43

标签: c# asp.net

我在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应用程序,此时我已经没有想法了。

感谢,

5 个答案:

答案 0 :(得分:4)

我认为你实际上是这个意思:

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

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

您收到(有点神秘)错误消息的原因是因为System.Linq显然有一个名为internal的{​​{1}}类。

答案 1 :(得分:3)

您的问题如下:

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

您已在String添加了额外的's'。我猜你还包括System.Linq,它显然有一个名为Strings的私人/内部类(你无法访问)。因此,由于保护级别而导致Strings无法访问的错误消息。

您只需将违规行更改为:

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

你应该好好去。

答案 2 :(得分:1)

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

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

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

但是,您还应该考虑直接使用string.Split可用的System.String实例方法。评估它的行为,看看你是否可以使用它,因为在C#中使用基本的BCL方法比使用或多或少特定于Visual Basic的方法更具惯用性。

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

所以你可能有像

这样的东西
string[] lines =  yourText.Split(new string[] { "<br>" }, StringSplitOptions.RemoveEmptyEntries);

答案 3 :(得分:0)

我想你想要

string.Split(.....)

而不是字符串

答案 4 :(得分:0)

就我而言,我试图使用LINQ Dynamic Query Library或System.Linq.Dynamic.DynamicExpression。你可以从link获得它。

有关ScottGu博客here

的更多详情