我正在调用一个返回包含XML数据的字符串的函数。此函数的工作原理并不重要,但生成的xml可能会有所不同,具体取决于函数的成功。
基本上该函数将返回expect XML或错误格式的XML。以下是两个结果的基本样本......
成功:
<SpecificResult>
<Something>data</Something>
</SpecificResult>
出错:
<ErrorResult>
<ErrorCode>1</ErrorCode>
<ErrorMessage>An Error</ErrorMessage>
</ErrorResult>
我的系统设置方式是我可以将xml字符串转换为具有简单转换器函数的类,但这需要我知道类类型。成功之后,我会知道它是SpecificResult,我可以转换。但我想先检查是否发生了错误。
理想的最终结果将允许类似的内容...
string xml = GetXML();
if(!IsError(xml))
{
//convert to known type and process
}
所以问题是,实现IsError
函数的最佳方法是什么?
我想到了几个选项,但不确定我是否真的喜欢它们......
"<ErrorResult>"
答案 0 :(得分:5)
由于GetXml()
方法本质上是返回无类型数据,这里唯一安全的假设是它的结构为XML ,这是断言其实际的最安全的方法type将解析为XML:
private bool IsError(string xml)
{
var document = XDocument.Parse(xml);
return document.Element("ErrorResult") != null;
}