0

我正在创建一个应该由不同应用程序使用的库。这些应用程序不应该看到库的实现细节,而只是呈现一个可用的界面。

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

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

但是,我想知道这是否真的是一个好习惯。毕竟,我正在规避可能会混淆其他开发人员的内部访问修饰符。

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

在这种情况下,最佳做法是什么?

4

1 回答 1

2

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

您可以在此处阅读有关朋友程序集的信息。主要用例是单元测试。

于 2014-07-31T08:55:09.267 回答