c# - 在C#中,如何在编译时限制谁可以调用方法

标签 c# visual-studio compiler-construction compile-time

在C#中,是否可以在编译时限制谁可以调用方法?

我研究了指令,但没有用,因为我无法为符号赋值。

#define WHO VisualStudioUser.Current // does not work

我还研究了代码访问安全性 (CAS),但这是运行时强制执行,而不是编译时。

鉴于方法存在于预编译程序集中,要求限制特定开发人员在编译时访问该方法。

这里有更多的细节... 我正在为一组开发人员构建框架或系列或程序集。由于我们的软件许可限制,我只能允许少数开发人员编写代码来调用一些受限制的方法。开发人员将无法访问框架的源代码,但他们可以访问已编译的框架程序集。

最佳答案

快速的回答是:不,这是不可能的,如果你需要这样做,那你就错了。

这将如何运作?这取决于谁在运行代码还是谁编写代码?

编辑 有一种方法可以使用 InternalsVisibleTo 并限制在源代码管理中访问指定了 InternalsVisibleTo 的程序集。参见 Jordão's answer

关于c# - 在C#中,如何在编译时限制谁可以调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8125175/

相关文章:

c# - MySQL .Net 连接器问题执行例程

asp.net-mvc - 当我在 Visual Studio 2013 中正在运行的另一个项目上打开一个项目时会发生什么?

javascript - 如何将具有递归和交替的正则语法转换为正则表达式

c# - 完全基于实体相似性的无监督聚类

c# - 为 .NET 开发人员学习 Python

c# - TFS 2013 在构建/部署期间抛出 Lib2GitSharp 错误(间歇性)

c# - 检查对象列表是否包含属性

c++ - 无法安装 Visual Studio C++ 包含文件 'excpt.h'

compiler-construction - 为 ARM 架构编译 Ada

compiler-construction - Play Framework 类型 ... 已经定义