1

在我的项目中,我收到一个 XmlElement,我必须将其中的一些属性解析回一个类。

为了映射这些,我使用 XmlConvert 类。但是源是 XML,通常有空节点或不可读的节点。与其抛出一堆错误,我想将一个 NULL 返回存储在我的班级中。

我开始制作一个 XmlConvertExtentions 类,它按照以下精神做事:

public static class XmlConvertExtentions
{
    public static int? ToNullableInt32 (this XmlConvert c, string s){
        try{ return XmlConvert.ToInt32(s); }
        catch{ return null; }
    }
}

我坚信我不是第一个需要这种功能的开发人员,我想知道我是否没有发明另一个轮子。
此外,我觉得我正在发明一个非常丑陋的轮子。try catch 感觉很糟糕。有没有更好的办法?

--EDIT--
现在我也注意到它甚至不起作用:P
我认为这是因为你不能扩展静态类。

4

2 回答 2

1

如果节点为空或为空,那么是s什么?

怎么样:

if(string.IsNullOrEmpty(s)) return null;
return XmlConvert.ToInt32(s);

另请注意,LINQ-to-XML 对这些转换有更优雅的处理(通过强制转换)。

于 2009-04-27T09:28:45.973 回答
0

我不知道在您的情况/情况下是否可能,但是您是否已经使用 XML 序列化类,并通过 XmlSerializer 类将 XML 反序列化为您的自定义类的实例,而不是手动完成所有操作?

于 2009-04-27T09:26:33.687 回答