Я не могу использовать Server.MapPath в библиотеке класса c #?

#.net #c#-4.0 #server.mappath

#.net #c # -4.0 #server.mappath

Вопрос:

Мне нужно получить доступ к папке в ~/Templates в моем приложении. Я не получил предложения для server.MapPath. Почему так?

Кроме того, я попытался использовать среду HostingEnvironment.MapPath и System.Web.HttpContext.Current.Сервер.MapPath.Но он возвращает null. Есть ли какое-либо решение для этого?

 var path = System.Web.HttpContext.Current.Server.MapPath("~/Templates");
 

Комментарии:

1. Просто чтобы понять основы: выполняется ли это в HttpContext, то есть: из-за запроса к веб-приложению?

2. В идеале, пусть приложение-потребитель сообщает библиотеке классов, где находятся используемые шаблоны. Не пытайтесь определить среду, в которой вы работаете.

3. К вашему сведению: «Сервер» в Server.MapPath(..) — это не глобальный объект, а свойство класса Page. Итак, за пределами страницы (или usercontrol) она не существует — вот почему вы «не получили предложения»