在C#中,是否可以在编译时限制谁可以调用方法?
我研究了指令,但没有用,因为我无法为符号赋值。
#define WHO VisualStudioUser.Current // does not work
我还研究了代码访问安全性 (CAS),但这是运行时强制执行,而不是编译时。
鉴于方法存在于预编译程序集中,要求限制特定开发人员在编译时访问该方法。
这里有更多的细节... 我正在为一组开发人员构建框架或系列或程序集。由于我们的软件许可限制,我只能允许少数开发人员编写代码来调用一些受限制的方法。开发人员将无法访问框架的源代码,但他们可以访问已编译的框架程序集。
最佳答案
快速的回答是:不,这是不可能的,如果你需要这样做,那你就错了。
这将如何运作?这取决于谁在运行代码还是谁编写代码?
编辑 有一种方法可以使用 InternalsVisibleTo 并限制在源代码管理中访问指定了 InternalsVisibleTo 的程序集。参见 Jordão's answer
关于c# - 在C#中,如何在编译时限制谁可以调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8125175/