代码之家  ›  专栏  ›  技术社区  ›  jason

在多个项目之间使用接口ASP。网

  •  1
  • jason  · 技术社区  · 7 年前

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

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

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

    3. BusinessLayer类库(提供业务逻辑层)-包含对数据类库、数据层类库和实用程序类库的引用

    4. DataLayer类库(提供一个直接与数据库接口的层,即CRUD命令)——有参考数据类库和实用程序类库

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

    在大多数情况下,这是好的。但是,我在Utilities类库中有一个类,需要引用WebApp和BusinessLayer类库中的函数和属性。我不能添加对这些项目的引用,因为这样会产生循环依赖。那么,我该如何设置接口和正确的引用呢?

    2 回复  |  直到 7 年前
        1
  •  0
  •   Saurabh Agrawal    7 年前

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

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

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

        2
  •  0
  •   DavidWainwright    7 年前

    听起来你需要把这些常用功能从webapp中移出,放到你的实用程序库中。我认为你不应该从任何其他库中引用你的web应用。