asp.net - 如何从模块或类 Web 文件访问 Friend 方法
问题描述
我正在开发一个 VB.NET ASP.NET 网站。我希望能够限制 Friend 访问我的所有页面中使用的一种方法。
当我这样做时,无论是在模块中还是在 VB 类 Web 文件中(在我的 App_Code 项目文件夹中),我都看不到它。我得到错误 [方法] 在这种情况下无法访问,因为它是“朋友”。
从我的所有研究来看,这是因为 bin 被安排成许多不同的 DLL - 一对用于 App_Web_####,一个用于 App_Code。
我尝试将此文件移出 App_Code 文件夹并将其放在其余文件的级别(与页面相同的级别),但我无法从那里引用它。
我考虑在模块/类的顶部指定以下内容,但由于 App_Web_#### 似乎不确定,我将无法可靠地使用某些东西。
Imports System.Runtime.CompilerServices
<Assembly: InternalsVisibleTo("AssemblyB")>
编辑:我正在尝试在 Visual Studio 15 中执行此操作
必须有一种方法可以从模块或类文件中引用 Friend 方法。还有其他建议吗?
解决方案
InternalsVisibleTo
必须位于包含Friend
要公开的方法的程序集中,并且它必须命名要公开这些成员的程序集。
话虽如此,InternalsVisibleTo
不能仅限于单个成员:这是全有或全无的事情。
对您来说发生的事情是您的代码被拆分为两个不同的程序集,而您不知道第二个程序集的名称;它是在编译时生成的。如果该名称在构建之间保持不变,您可以通过在运行时检查程序集(通过对象浏览器)来确定它。一旦知道程序集名称,就可以使用它来正确公开内部成员。
推荐阅读
- java - How do I make this image larger?
- mysql - 有没有办法让mysql在获取时自动转换时区?
- python - 为什么 Github API for content update 会抛出 400 错误?
- python - 打印熊猫数据框中最大形状的索引和值
- networking - 设置防火墙规则 - 从 Google Cloud Console 与从实例内部
- clojure - lein repl 导致 java.lang.AssertionError (transport-fn)
- bash - Git prepare-commit-msg 钩子没有得到任何参数
- ios - 可以在 iPad 上编辑 Firebase Cloud Functions 并部署更改吗?
- sorting - SAS中的复杂连接
- reactjs - 无法在 nextjs 服务器端代码中获得异步/等待工作(未定义 regeneratorRuntime)