从MVC项目访问类库?

时间:2009-07-13 19:23:24

标签: visual-studio-2008 namespaces

我在一个解决方案中有一个类库项目和MVC项目。

我的类库有名称空间MyStuff.Classes

我的MVC项目有名称空间MyStuff.Web

我似乎无法直接或使用using指令从mvc项目中访问我的类库,反之亦然?

在这种情况下使用命名空间的最佳方法是什么?一般情况下?任何提示提示欢迎。

由于

3 个答案:

答案 0 :(得分:5)

您需要添加对Class项目的引用

如果右键单击MVC项目中的引用,请点击Projects选项卡以轻松添加对Class项目的引用。

答案 1 :(得分:2)

这取决于您希望在MVC项目中访问此类库的位置。首先,您需要向类库添加项目引用。从模型或控制器访问它应该是微不足道的。

要在视图中访问它,您需要将以下内容添加到web.config:

<pages>
  <namespaces>
    <add namespace="MyStuff.Classes"/>
  </namespaces>
</pages>

然后你可以强烈输入你的观点:

<%@ Page Language="C#" 
         MasterPageFile="~/Views/Shared/Site.Master" 
         Inherits="System.Web.Mvc.ViewPage<MyStuff.Classes.MyClass>" %>

答案 2 :(得分:0)

在您已经在MVC项目中引用类库的场景中,您可能会收到如下错误:

  

由于循环依赖性错误

,无法添​​加对项目的引用

如果您尝试在类库中引用MVC项目。您将无法将该项目添加为项目的参考。这里解释了这个原因:Cannot add reference to project because of a circular dependency error

您可以将其添加到MVC项目,而不是将类添加到类库项目中。然后你所要做的就是添加:

using MyStuff.Classes; //Or the name of your class being referenced

您现在可以使用类库中的类。

这是我为了引用类库项目中的类而必须做的事情,所以我可以使用数据类型&#34; HttpPostedFileBase&#34;因为我无法使用&#34; System.Web.Abstractions&#34;在我的班级图书馆(it was not being referenced and I could not resolve it with this solution)。

如果有人遇到这种奇怪的情况,我希望这会有所帮助。