繁体   English   中英

我是否可以通过不同的“API”DLL仅公开一个.NET DLL的公共类的一部分?

[英]Can I expose only a portion of one .NET DLL's public classes via a different “API” DLL?

我正在设计一个使用DLL的WPF应用程序,可能有40个公共类。 我出于各种原因需要公开这些内容,包括数据绑定和模糊处理。 我想允许其他人只使用这些类的一部分作为我的软件的API。

我以为我会创建主库(core.dll)和API库(coreAPI.dll)与API DLL在新项目中引用。 有没有办法让coreAPI.dll只暴露core.dll中存在的几个类? 这不是一个安全问题,因为我主要想简单地隐藏Visual Studio Intellisense中的一些不需要的类。

同样,我想要隐藏的内部类不是一个选项,因为我需要在WPF中绑定一些这些类的数据,为此,它们必须是公共的。 有没有其他方法可以做到这一点?

正如Damien已经提到的,如果您唯一想做的就是隐藏Intellisense,您可以将以下属性添加到隐藏的类中:

[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]

如果主要问题是Intellisense,那么将这些类移动到一个单独的命名空间肯定会成功吗?

当然,您可以将类拆分为两个单独的程序集。 你可能遇到一些问题,不得不暴露比你想要的更多的类(因为它们现在存在于不同的程序集中),这可能是使用InternalsVisibleTo属性可解析的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM