由于其保护级别,功能不可访问

本文关键字:功能 访问 于其 保护 | 更新日期: 2023-09-27 18:11:17

我在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. '由于其保护级别

, string '无法访问

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

using Microsoft.VisualBasic;

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

谢谢,

由于其保护级别,功能不可访问

我想你是这个意思:

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

您得到(有些神秘的)错误消息的原因是因为System.Linq显然有一个称为Stringsinternal类。

你的问题是:

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

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

您只需要将违规行更改为:

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

你应该可以走了

您正在尝试使用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);

我想你要

string.Split(.....)

而不是字符串

在我的情况下,我试图使用LINQ动态查询库或System.Linq.Dynamic.DynamicExpression。你可以从这个链接得到它。

更多ScottGu博客的细节在这里