场景 - 我需要访问HTML模板以从我的业务逻辑层生成电子邮件。它是一个类库,包含一个包含该文件的子文件夹。当我在单元测试中尝试以下代码时:
string FilePath = string.Format(@"{0}\templates\MyFile.htm", Environment.CurrentDirectory);
string FilePath1 = string.Format(@"{0}\templates\MyFile.htm", System.AppDomain.CurrentDomain.BaseDirectory);
它使用的是C:\ WINNT \ system32 \或ASP.NET临时文件夹目录。
在不使用app.config或web.config文件的情况下访问此文件的最佳方法是什么?
[这是使用WCF服务]
答案 0 :(得分:6)
你是从ASP.Net应用程序运行的吗?请改用Server.MapPath()
。
另请查看System.IO.Path.Combine()
连接路径。
[编辑]
由于您无法使用System.Web
,请尝试以下操作:
System.Reflection.Assembly.GetExecutingAssembly().Location
或GetEntryAssembly()
。
答案 1 :(得分:1)
我相信你在寻找
System.IO.Path.GetDirectoryName(Application.ExecutablePath);
答案 2 :(得分:1)
我在我的网站上工作了!在过去的两年里,我一直没有这么做!!!
我在web.config的system.serviceModel块中添加了这个。它似乎使所有路径都相对于您的服务安装位置。
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
迟到总比没有好?
答案 3 :(得分:0)
使用
System.Web.HttpServerUtility.MapPath( "~/templates/myfile.htm" )