Доступ к библиотеке классов из проекта MVC? - PullRequest
1 голос
/ 13 июля 2009

У меня есть проект библиотеки классов и проект MVC в одном решении.

Моя библиотека классов имеет пространство имен MyStuff.Classes

Мой проект MVC имеет пространство имен MyStuff.Web

Я не могу получить доступ к своей библиотеке классов из проекта mvc или наоборот, напрямую или с помощью директивы using ??

Каков наилучший способ использования пространств имен в этих случаях? и вообще? любые советы подсказки приветствуются.

Спасибо

Ответы [ 3 ]

5 голосов
/ 13 июля 2009

Вам необходимо добавить ссылку на ваш проект класса

Если вы щелкнете правой кнопкой мыши по ссылкам в своем проекте MVC, перейдите на вкладку Projects, чтобы легко добавить ссылку к вашему проекту Class.

2 голосов
/ 13 июля 2009

Это зависит от того, где в вашем проекте 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>" %>
0 голосов
/ 30 декабря 2013

В сценарии, который вы уже ссылались на библиотеку классов в своем проекте MVC, вы можете получить сообщение об ошибке следующим образом:

Невозможно добавить ссылку на проект из-за ошибки циклической зависимости

Если вы попытаетесь сослаться на проект MVC в библиотеке классов. Вы не сможете добавить этот проект в качестве ссылки на ваш проект. Причина этого объясняется здесь: Невозможно добавить ссылку на проект из-за ошибки циклической зависимости

Вместо добавления класса в проект библиотеки классов, вы можете добавить его в проект MVC. Тогда все, что вам нужно сделать, это добавить:

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

Теперь вы можете использовать классы внутри вашей библиотеки классов.

Это то, что я должен был сделать, чтобы ссылаться на класс внутри моего проекта библиотеки классов, чтобы я мог использовать тип данных "HttpPostedFileBase", потому что я не мог использовать "System.Web.Abstractions" в моей библиотеке классов ( на него не ссылались, и я не мог разрешить его с помощью этого решения ).

Надеюсь, это поможет, если кто-то столкнется с этим странным сценарием.

...