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

Ray*_*eng 2 c# compiler-construction compile-time visual-studio

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

我查看了指令,但由于我无法为符号赋值,因此无效.

#define WHO VisualStudioUser.Current // does not work
Run Code Online (Sandbox Code Playgroud)

我还研究了代码访问安全性(CAS),但这是运行时实施,而不是编译时间.

要求在特定开发人员的编译时限制对方法的访问,前提是该方法存在于预编译的程序集中.

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

Ray*_*Ray 7

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

这怎么会工作?它取决于谁运行代码或谁编写代码?

编辑有一种方法使用InternalsVisibleTo并限制在源代码管理中访问指定InternalsVisibleTo的程序集.见Jordão的回答