只有一个项目可以访问,项目共享一个命名空间

Only one project accessible where projects share a namespace

我有一个解决方案,其中包含 DataAccessDataAccessImplementation

DataAccess 包含:IFooAccess 和其他接口

DataAccessImplementation 包含:实现 IFooAccess 的 FooAccess,以及许多其他执行相同操作的 类。

现在,这两个项目都在同一个命名空间中。'foo.DataAccess'。

我遇到的问题是,在我引用这些项目的项目中,这两个项目中只有一个在我构建时进入 bin 文件夹,并且只有它的接口在我的代码中可用。例如,如果我包含对 DataAccessDataAccessImplementation 的引用,则只会显示 DataAccess

DataAccessImplementation 在我取消引用 DataAccess 之前不会进入,但是一旦我再次引用它,唯一的 类 我可以找到 DataAccess 项目的那个。

这些项目是否需要在单独的命名空间中?为什么不添加这两个项目?

通常不,它们不一定是 - 但将它们保存在一个名称空间中也不是最佳做法。为了清楚起见(为了我们自己和其他开发人员),我们根据他们的 focusintent 将它们分开。例如:

com.yournamespace.DataAccess

com.yournamespace.DataModels

这将是两个独立的项目。在此示例中,我已将您的 'DataAccessImplementation' 替换为 DataModels,因为区别不明确。

我遇到的问题实际上不是由于命名空间引起的,而是程序集名称相同。将名称更改为更合适的名称后,它工作正常。