运行方法时出现错误:
System.ArgmentException:该字符串未被识别为有效的uri
private void loadXMLBttn_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog selectConfigFile = new OpenFileDialog();
selectConfigFile.Title = "Select an existing XML config file...";
selectConfigFile.InitialDirectory = @"C:\";
selectConfigFile.DefaultExt = ".xml";
selectConfigFile.Filter = "xml files|.xml|All files (*.*)|*.*";
var selectedFile = selectConfigFile.SafeFileName;
selectConfigFile.ShowDialog();
XDocument configFile = XDocument.Load(selectedFile);
}
答案 0 :(得分:2)
您会收到此异常,因为您的selectedFile
变量从未真正填充过。
您需要填充selectedFile
变量之后,以显示对话框并允许用户选择XML文件:
selectConfigFile.ShowDialog();
var selectedFile = selectConfigFile.SafeFileName;
XDocument configFile = XDocument.Load(selectedFile);
答案 1 :(得分:1)
是的,问题在于您在显示对话框之前设置了selectedFile。如果您以这种方式重写代码,则可以100%解决该问题:
private void loadXMLBttn_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog selectConfigFile = new OpenFileDialog()
{
Title = "Select an existing XML config file...",
InitialDirectory = @"C:\",
DefaultExt = "*.xml",
Filter = "XML files|*.xml|All files (*.*)|*.*"
};
if (selectConfigFile.ShowDialog() == true)
{
var selectedFile = selectConfigFile.FileName;
XDocument configFile = XDocument.Load(selectedFile);
}
}
这将修复一个过滤器,该过滤器在您的示例中不起作用,并使文件对话框选项初始化程序更加清晰。另外,如果用户不会选择任何文件-也不会尝试加载空字符串路径