asp.net 未声明变量,则可能由于其保护级别而无法访问该变量

jslywgbw  于 2023-05-08  发布在  .NET
关注(0)|答案(8)|浏览(247)

我的VB技能并不是最好的,这个问题让我难住了几天。
在Visual Studio中显示的控件列表中,如果没有在后面的代码中定义,我可以将鼠标“悬停”在它们上面,工具提示文本就会弹出。

类似问题:
这一个没有解决方案-'var_name'is not declared. It may be inaccessible due to its protection level.' in debug mode
这一个说解决方案是在web.config,但我不明白在哪里/如何-BC30451: 'MailValidation' is not declared. It may be inaccessible due to its protection level
这是一个拼写错误的单词-vb.net error: inaccessible due to its protection level

更新-这是另一个问题,可能是我的问题的线索:

在我的Tools.vb* 模块中,我有一个类来访问LDAP。
tools类的命名空间在
login.aspx.vb**代码中给出,但登录代码无法识别tools类。

clj7thdc

clj7thdc1#

请密切注意错误的第一部分:“未声明变量”
忽略第二部分:“由于其保护级别,可能无法访问”。这是转移注意力
一些问题...(答案可能在你贴的那张照片里,但我似乎不能把它放大,我的眼睛也看不懂那么小的印刷品……)有没有可能你可以用一种老眼睛能读到的方式发布代码?所以很难知道整体情况。特别是我怀疑你的页面指令。)
我们知道1stReasonTypes是一个列表框,但由于某种原因,我们似乎不知道哪个列表框。这就是为什么我想看看你的页面指令。
但是,如何调用私有方法FormRefresh()?它不是一个事件处理程序,这让我怀疑你是否试图引用一个表单中的列表框,而这个表单在后面的代码中没有得到正确的处理。
您可能需要找到控件1stReasonTypes。试着把你的列表框放在类似于

<div id="MyFormDiv" runat="server">.....</div>

然后在FormRefresh()中执行...

Dim 1stReasonTypesNew As listbox = MyFormDiv.FindControl("1stReasonTypes")

或者使用现有控件、对象或页而不是div。关于FindControl的更多信息:http://msdn.microsoft.com/en-us/library/486wc64h(v=vs.110).aspx
但是不管你如何划分它,这里有一些奇怪的事情,比如1stReasonTypes不知道它应该是哪个确切的列表框。

drnojrws

drnojrws2#

我也遇到过类似的问题,一个Sub在运行时无法访问,但在编辑器中绝对法律的。通过将目标Framework从4.5.1更改为4.5解决了该问题。我的IIS只有4.5版本。
:)

rryofs0p

rryofs0p3#

如果我没记错的话,这是控件的默认属性。
您是否可以尝试进入包含指定Control的admin_reasons的Design-View,然后将该控件的Modifiers属性更改为Public或Internal。

q0qdq0h2

q0qdq0h24#

我也遇到过类似的问题。我通过使解决方案中的所有项目都以相同的.NET Framework 4客户端配置文件为目标,然后重新构建整个解决方案来解决这个问题。

0mkxixxg

0mkxixxg5#

我在重命名App_Code文件夹后得到了这个错误。实际上,我不小心把整个文件夹拖到了App_data文件夹。VS 2015并没有抱怨很难发现哪里出了问题。

uqcuzwp8

uqcuzwp86#

我发现在Visual Studio的不同版本之间移动时,必须注解掉 Package 类的命名空间:
'命名空间表单验证
'结束命名空间
而在其他时候,我必须取消对名称空间的注解。
当其他开发人员使用不同版本的VS编辑相同的解决方案和/或我将解决方案移动(复制)到另一个位置时,这种情况发生在我身上好几次

uidvcgyl

uidvcgyl7#

当我错误地在VB.Net中的行连续字符后面添加注解时,我发生了这个错误。我删除了评论,问题就解决了。

prdp8dxp

prdp8dxp8#

在我的情况下,错误是因为其他几个程序集使用的程序集是在.NET 4.5而不是.NET 4.7中产生的,可能在GAC中。在我的解决方案的全局引用树中有一个版本不匹配。
我包含了错误的程序集的源代码,将其版本修改为.NET 4.7,并确保我的解决方案中的所有其他程序集都指向这个版本。我还“中和”了GAC中的一个,用下划线作为第一个字母重命名它。

相关问题