我有一个对象'自动图文集'正在使用以下ctor从XmlNode(从远程源检索)填充的内容:
public AutoText(XmlNode autoTextNode)
{
if (null == autoTextNode)
{
throw new System.Exception("Attempted to create AutoText with null autoTextNode");
}
foreach (XmlNode childNode in autoTextNode.ChildNodes)
{
string childNodeName = childNode.Name;
if (childNodeName == "Id")
{
this.AutoTextId = childNode.InnerText;
}
... snip ...
else if (childNodeName == "Autotext")
{
this.AutoTextContent = childNode.InnerText;
}
}
}
有更好的方法吗?我知道我可以这样做:
this.AutoTextId = autoTextNode["Id"].InnerText;
但是如果' Id'可能会抛出空引用异常。没有,所以你需要检查任何可选字段。实际上在所有领域,如果强制节点不存在,你可能会想要一个特定的例外。这个解决方案看起来很难看。我确定有更好的方法,但不知道它是什么!