【问题标题】:How do I add a reference to a Web Application Project in an Associated Class Library?如何在关联类库中添加对 Web 应用程序项目的引用?
【发布时间】:2010-05-13 21:39:09
【问题描述】:

我正在开发一个已在 Visual Studio 中设置为 Web SITE 项目(我知道...)的 Internet 应用程序。我需要添加额外的特性/功能,所以在项目中添加了一个类库并在主网站项目中引用它。

现在出现问题是因为我需要使用位于网站项目的 App_Code 目录中的核心对象,但该项目似乎没有像网络应用程序/代码库项目那样公开其 DLL。因此,我无法在类库中添加对网站项目的引用以利用通用站点范围的代码/对象。

我无法将这些内容移出 App_Code,因此我正在寻找一种方法来从新类库中引用网站项目 dll。任何人都可以提出解决方法吗?感激地收到所有帮助v. :-)

【问题讨论】:

  • 所以你想从网站引用类库,从类库引用网站.... 一个黑色的整体会在你眼前生成:-p 请告诉我们为什么不能将类从 App_Code 移动到类库。
  • 对黑洞大笑。显然,迁移到我认为正确的模型(Web 应用程序项目)所需的时间不能作为“商业案例”来证明。
  • 我将提出一个商业案例,即围绕当前设置工作以实现无论您目前正在从事的工作都需要更多的时间和工作,而不是重构然后从那里开始工作。特别是如果您包括所有可能的错误和问题,您将通过复制代码在路上遇到。不会涉及太多工作,您只需移动几个类并更新一些命名空间。

标签: c# asp.net


【解决方案1】:

您将无法做到这一点。它会创建一个循环引用。

我很好奇为什么不能将东西移出 App_Code。做你需要的“正确”方法是创建第三个“共享”库,其中包含需要在网站和新库中使用的类,并从两者中引用它。

【讨论】:

  • 是的,这是我对这个问题的直觉反应,看来我必须在我的库中复制代码。感谢阅读:-)
【解决方案2】:

我会将您网站的 App_Code 目录中的任何类移动到新的类库程序集中。如果您有非特定于我们站点的通用功能(如果您想从类库中引用该代码,听起来就像您拥有的那样),那么保存这些类的适当位置无论如何都在这个通用存储库中。如果将它们保留在同一个命名空间中,代码应该可以重新编译。

【讨论】:

    【解决方案3】:

    您可以告诉visual studio tu为您的网站代码生成固定名称程序集并引用它。

    无论如何,恕我直言,在您的项目中执行此类操作是一种糟糕(非常糟糕)的做法,因为它会生成循环引用。为什么不能将你的 app_code 移出 webapp 项目?

    【讨论】:

      猜你喜欢
      • 2018-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 2011-05-28
      • 2010-10-07
      相关资源
      最近更新 更多