隐藏除了另一个特定程序集之外的所有内容

Lea*_*yes 0 c# dll mono unity-container monodevelop

我有两个类库"MyLibrary.dll"和"MyLibraryEditor.dll"用于Unity运行时和编辑器扩展."MyLibrary.dll"中有几个类成员仅供"MyLibraryEditor.dll"使用.

我的第一个想法是使用internal关键字,因为我错误地认为这限制了命名空间的可见性.相反,很明显,此关键字限制了程序集的可见性.

在不损害性能的情况下,将对某些类成员的访问限制为"MyLibrary.dll"和"MyLibraryEditor.dll"的最佳方法是什么?此外,反思不是一种选择.

我很高兴根本不记录这些功能,但不幸的是,Intellisense(和MonoDevelop的等价物)展示了这些成员.

Ste*_*tty 5

如果希望一个装配中的内部构件从另一个装配体中可见,则可以InternalsVisibleTo在包含内部构件的装配体上使用该属性.请参阅http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.aspx:

[assembly:InternalsVisibleTo("MyLibraryEditor")]
Run Code Online (Sandbox Code Playgroud)

答案是,你可能想重新考虑你的建筑设计,这样你就不需要使用它,因为它会打开所有内部组件到另一个组件,而不仅仅是你想要的那些.