C# 使用XmlTextReader通过http读取同一服务器上的文件
我肯定我在这里遗漏了一些显而易见的东西 我有一个ASP.NET MVC2应用程序,其XML文档位于/content/mydoc.XML。我正在尝试使用XmlTextReader加载它:C# 使用XmlTextReader通过http读取同一服务器上的文件,c#,xml,asp.net-mvc-2,C#,Xml,Asp.net Mvc 2,我肯定我在这里遗漏了一些显而易见的东西 我有一个ASP.NET MVC2应用程序,其XML文档位于/content/mydoc.XML。我正在尝试使用XmlTextReader加载它: XmlTextReader reader = new XmlTextReader("/content/mydoc.xml"); 通过单步执行,我可以看到这被解析为file:///C:/content/mydoc.xml 我知道我可以使用Server.MapPath()来获取文件路径,但考虑到XML文档可以通过h
XmlTextReader reader = new XmlTextReader("/content/mydoc.xml");
通过单步执行,我可以看到这被解析为file:///C:/content/mydoc.xml
我知道我可以使用Server.MapPath()
来获取文件路径,但考虑到XML文档可以通过http访问,这似乎有点太草率了
有没有办法让XmlTextReader正确解析URL?怎么样
XmlTextReader reader =
new XmlTextReader(Url.GenerateContentUrl("~/content/mydoc.xml"));
当然,您需要一个UrlHelper实例来完成此任务(在视图和控制器中作为Url字段提供)
编辑
如果我知道文件所在的位置,我更愿意将其作为一个文件,而不是HTTP的开销。因此,
MapPath
在这里似乎是个不错的选择。谢谢。然而,这似乎只是将~/content/mydoc.xml解析回/content/mydoc.xml。我可以使用来自的答案来获取基本URL并构建完整的URL,但对于通过文件系统而不是HTTP访问文件来说,这似乎相当复杂,除非您有特定的理由这样做。伙计们,干杯-这确实更有意义。