希望使用:
fileMap.ExeConfigFilename = System.Web.HttpContext.Current.Server.MapPath("~/Synchroniser/ConvertXML/App.config");
在我的项目中。 .HttpContext正在标记,因为命名空间不存在。 我查看了一个旧的项目,它的工作原理并将相同的ref文件导入我的引用,但它标记为黄色的解释标记,也尝试添加
using System.Web.Http;
using System.Web;
但没有快乐,任何想法?
答案 0 :(得分:1)
确保您的项目的目标是完整的.NET 4.0而不是客户端配置文件:
现在,您需要将System.Web
程序集和using System.Web
的引用添加到文件中:
所有这些,请注意,这是一个绝对可恶的事情。您的类库(a.k.a DAL,BAL,等等......)应该完全不了解任何HttpContext。这纯粹是网络内容,应该只在它所属的地方生活 - 到网络层。
您的DAL,BAL,......不应该进行任何System.Web.HttpContext.Current.Server.MapPath
来电。它应该只是将文件名作为参数。计算此文件名的方式完全是调用者的责任。因此,如果调用者是Web应用程序,则可以使用MapPath
方法。如果调用者是桌面应用程序,则应使用其他内容。如果它是Windows Phone应用程序,它应该使用另一件事。看看你的DAL,BAL,...是如何与呼叫者无关,而且更可重复使用?
答案 1 :(得分:0)
HttpContext.Current.Server.MapPath应该被HostingEnvironment.MapPath和ref System.Web.Hosting取代,以避免使用httpcontext