gpt4 book ai didi

c# - 保护命名空间

转载 作者:行者123 更新时间:2023-12-04 16:57:04 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





C# access modifier for exposing class only within namespace

(3 个回答)


去年关闭。




这是我的命名空间和其中的类。

MyProject
ManagerClass
ProjectClass
UiClass


MyProject.Audio
MusicManager
MyProject.Audio.DynamicMusic
DynamicMusicSong
DynamicMusicTrack
DynamicMusicClip

有什么办法可以让 Audio 下的命名空间只能被 Audio 中的类访问吗?我希望它们对 MyProject 中的类不可见,除了实际 Audio 命名空间中的那些。

最佳答案

对于类,有访问修饰符 publicinternal ( see here )

public: The type or member can be accessed by any other code in the same assembly or another assembly that references it.

internal: The type or member can be accessed by any code in the same assembly, but not from another assembly.



更细粒度的控制是不可能的*,因此您不能在每个命名空间级别上声明可见性。

*这不是 100% 正确。有可能允许其他程序集访问 internal类型和方法, InternalsVisibleToAttribute .无论如何,我建议您完全小心地使用它,因为您会增加这些程序集之间的耦合。它们将依赖于彼此的内部结构,这将增加不稳定代码库的可能性(更多更改)。我仅将这些属性用于测试目的。

关于c# - 保护命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60320816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com