0

我正在尝试创建可以在我的开发团队之间共享的单元测试,所以我需要让项目中的所有路径都是相对的。

这给我带来麻烦的地方是 HttpWebRequest 类。我希望它从本地文件系统中的文件中提供静态测试数据。

我想做这样的事情:

file:///./TestData/test.html

但这只会产生 C:\TestData\test.html 和 DirectoryNotFoundException。

HttpWebRequest 的代码如下所示:

var request = HttpWebRequest.Create(uri);
var response = request.GetResponse();
var responseStream = new StreamReader(response.GetResponseStream());
return responseStream.ReadToEnd();

如何说服 C# 在不破坏 Uri 语法的情况下解析相对路径?

问候丹尼尔

4

2 回答 2

1

与项目中的任何程序集相比,您尝试服务器的文件是否具有相对路径?如果是这样,那么您可以基于其中一个程序集的路径构建一个非相对 URL,并将其返回给调用者。

例如:

var basePath = Path.GetDirectoryName(typeof(MyType).Assembly.Location);
var fullPath = Path.Combine(basePath, @"TestData\test.html");
return new Uri(fullPath);
于 2009-02-03T14:48:05.683 回答
-1

如果 webrequest 在文件系统上,为什么还需要它?你可以用 File.ReadAllText(path) 打开它

于 2009-02-03T14:52:52.850 回答