我试图在一个解决方案中的两个项目之间共享一个公共命名空间。这些项目是“蓝图”和“存储库”。蓝图包含整个应用程序的接口,并作为应用程序结构的参考。
在 Blueprint 项目中,我有一个带有以下声明的接口:
namespace Application.Repositories{
public interface IRepository{
IEntity Get(Guid id);
}
}
在存储库项目中,我有一个类以下类:
namespace Application.Repositories{
public class STDRepository: IRepository
{
STD Get(Guid id){
return new SkankyExGirlfriendDataContext()
.FirstOrDefault<STD>(x=>x.DiseaseId == id);
}
}
}
但是,这不起作用。Repositories 项目具有对 Blueprint 项目的引用。我收到 VS 错误:“找不到类型或命名空间名称 'IRepository'(您是否缺少 using 指令或程序集引用?) - 通常,这很容易修复,但添加 using 语句没有意义因为它们具有相同的命名空间。无论如何我尝试了它,但它没有工作。引用已添加,并且没有引用该接口的代码行,两个项目都编译成功。我迷路了。我已经搜索过什么也没找到,所以我假设我正在做的事情从根本上是错误的......但我不知道它是什么。所以,我希望得到一些关于如何解决这个问题的解释或指导。我希望你们能提供帮助。
注意:我想这样做并将接口保留在同一命名空间下的原因是因为我想要一个可靠的项目来保留所有接口,以便为应用程序的完整架构提供参考。我考虑了一些变通方法,例如将所有接口放在 Blueprint.Application 命名空间而不是应用程序命名空间中。但是,这需要我在应用程序的几乎每一页上都写下 using 语句……我的手指会感到疲倦。再次感谢各位...