Подтвердить что ты не робот

Server.Mappath в С# classlibrary

Как я могу использовать метод server.mappath в классе библиотеки классов С#, который действует как мой BusinessLayer для моего веб-сайта ASP.NET

4b9b3361

Ответ 1

Вызывая его?

var path = System.Web.HttpContext.Current.Server.MapPath("default.aspx");

Убедитесь, что вы добавили ссылку на сборку System.Web.

Ответ 2

Вы можете получить базовый путь, используя следующий код и добавив необходимый вам путь.

string  path = System.AppDomain.CurrentDomain.BaseDirectory;

Ответ 3

Вам следует обратиться к System.Web и вызвать:

  HttpContext.Current.Server.MapPath(...)

Ответ 4

Возможно, вы могли бы абстрагировать это как зависимость и создать IVirtualPathResolver. Таким образом, ваши классы обслуживания не будут привязаны к System.Web, и вы можете создать другую реализацию, если хотите повторно использовать свою логику в другой технологии пользовательского интерфейса.

Ответ 6

HostingEnvironment.MapPath

System.Web.Hosting.HostingEnvironment.MapPath(путь);

Ответ 7

Архитектурно, System.web не следует ссылаться в Business Logic Layer (BLL). Используйте BLL в структуре решения, чтобы следовать отдельному принципу беспокойства, поэтому обратитесь к System.Web, это плохая практика. BLL не должен загружаться/запускаться в контексте Asp.net. Из-за причины вам следует рассмотреть возможность использования System.AppDomain.CurrentDomain.BaseDirectory вместо System.Web.HttpContext.Current.Server.MapPath