我在WCF中整合了一个快速数据服务,以供公共Silverlight 2.0应用程序访问。由于我的数据非常静态且相对简单,我只想将其存储在本地XML文件中(因为有非常有限数量的人会编辑它而变得更容易)。
我想知道从我的服务中找到相对路径的最佳方法是什么。在传统的ASP.NET中,我可以在此WCF服务中使用Server.MapPath ....没有类似的可用内容。此解决方案最终将托管在我无法控制的托管服务提供商处,因此我无法对任何固定位置进行硬编码。我更倾向于获取AppData文件夹中某些XML文件的相对路径。
有什么建议吗?
答案 0 :(得分:11)
您可以尝试使用Environment.CurrentDirectory或AppDomain.CurrentDomain.BaseDirectory
答案 1 :(得分:4)
答案 2 :(得分:2)
WCF服务仍然可以访问许多与ASP.NET页面相同的内容(因为最终仍然存在HTTP请求和响应)。您仍然可以像这样使用Server.MapPath:
HttpContext.Current.Server.MapPath(...)
答案 3 :(得分:1)
您可以将文件存储在IsolatedStorage中,而不是存储在应用程序的文件夹中。查看链接页面上的示例,了解它的工作原理。
答案 4 :(得分:0)
首先,向服务添加操作以返回当前目录。让新操作只返回Environment.CurrentDirectory。在客户端中,检查您是否对当前目录的内容感到惊讶。根据需要进行调整。