在多个项目中使用接口ASP.Net

时间:2018-07-10 02:04:01

标签: asp.net vb.net

我有一个包含多个库的项目。我的问题是我无法从其他库中访问某些库,因为当我添加引用时会遇到关于循环依赖项的错误。我假设我需要创建一个接口,但是我不确定如何构造它。这是我所拥有的一个例子: 我的参考设置如下:

  1. WebApp(这是一个ASP.Net网站)-引用了BusinessLayer类库和实用程序类库

  2. 数据类库(此库提供抽象的数据库功能)-没有引用

  3. BusinessLayer类库(提供了业务逻辑层)-引用了数据类库,DataLayer类库和实用程序类库

  4. DataLayer类库(提供了直接与数据库连接的层,即CRUD命令)-引用了数据类库和实用程序类库

  5. 实用程序类库(在所有层中使用的通用库)-没有引用

在大多数情况下,这很好。但是,我在实用程序类库中有一个类,需要在WebApp和BusinessLayer类库中引用函数和属性。我无法添加对这些项目的引用,因为那样会创建循环依赖。那么,我将如何设置接口和正确的引用?

2 个答案:

答案 0 :(得分:0)

您设计应用程序的方式与定义的架构模式非常相似 here

对于实用程序类,您可以在BusinessLayer /域层中定义一个接口,并在实用程序层中实现该接口。请注意,它只能返回业务层/域中定义的类型。这样,您就可以很好地分离关注点。如果说您的网站需要使用此实用程序方法,则可以应用转换将域类型转换为Web项目特定类型。这样,您就不会遇到循环依赖。

我基于这些原则创建了一个示例应用程序,您可以参考我的github 项目。

答案 1 :(得分:0)

听起来您需要将这些常用功能移出webapp并移至实用程序库中。我认为您不应该从其他任何库中引用您的Web应用。