Blazor中的XML ... Wasm:[System.PlatformNotSupportedException]在此平台上不支持该操作

时间:2019-02-27 17:18:49

标签: xml webassembly blazor

我正在尝试在Blazor中做一些XML东西,我只能得到2条错误消息。 我尝试的第一件事(使用本地XML文件)甚至找不到它...

string xmlPath = "C:\\Users\\me\\Desktop\\users.xml";
XElement contacts = XElement.Load(xmlPath);
Console.WriteLine(contacts);

这将显示一个错误,提示WASM:

  

[System.IO.FileNotFoundException]找不到文件“ /C:\Users\me\Desktop\users.xml”

它在路径的开头添加了/。

或者,如果我使用随机的在线XML,则会收到“不支持”错误。例如...

XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load("https://www.w3schools.com/xml/note.xml");

Wasm中显示的完整错误:

  

此平台不支持[System.PlatformNotSupportedException]操作。

是否只是Web Assembly不支持XML类之类的情况?

1 个答案:

答案 0 :(得分:1)

Web Assembly和JavaScript无法访问用户浏览器上的本地文件。当您尝试访问本地文件时,Web程序集会显示一条通知消息,告知用户找不到文件。在这种情况下,这是标准过程。

第二个错误:您要执行的操作是从Blazor应用向位于不同域的服务器发出http请求,这需要您配置CORS,但这不是主要问题。 XmlDocument无法使用HttpClient调用http请求。我不确定它是否完全可以创建自己的HttpClient实例,如果可以,则应使用与Blazor定义的默认HttpCient相同的设置来配置此HttpClient ...

希望这对您有帮助...