从由多个程序集组成的库中公开类的最佳实践是什么?

本文关键字:最佳 是什么 程序集 | 更新日期: 2023-09-27 18:15:42

我正在创建一个库,它应该被不同的应用程序使用。这些应用程序不应该看到库的实现细节,而只是提供一个可用的接口。

为了得到一个清晰的项目结构,我在我的解决方案中创建了几个项目。有些项目只包含外部世界不可见的代码,因为它只应该在内部使用。然而,这些代码需要跨项目边界可访问。

为了解决这个问题,我创建了几个内部类和方法,然后用我的AssemblyInfo.cs中的InternalsVisibleTo属性标记它们的程序集。

然而,我想知道这是否真的是一个好的做法。毕竟,我绕过了内部访问修饰符,这可能会使其他开发人员感到困惑。

我唯一的其他选择是只创建一个项目,必须包含所有标记为内部的内部代码。然而,我不喜欢这个解决方案,因为它将意味着我不再清楚地了解代码中的依赖关系。

这种情况下的最佳实践是什么?

从由多个程序集组成的库中公开类的最佳实践是什么?

嗯,这似乎是一个主观的问题,但我想说InternalsVisibleTo 主要是存在于单元测试。我想说,以这种方式设置项目可能不是最佳实践,而且可能指向一个潜在的问题。要么你没有把一些东西公开,而把它们公开是无害的,要么你的依赖并不是真正的依赖,它们是应该放在同一个地方的单体代码。

你可以在这里阅读友元程序集。主要用例是单元测试。