当前位置:  开发笔记 > 编程语言 > 正文

在反序列化海量XML文档时忽略空引用

如何解决《在反序列化海量XML文档时忽略空引用》经验,为你挑选了0个好方法。

我从WCF服务获得了大量的XML负载,我需要将其写入SQL数据库.我正在使用最新版本的.NET和Entity Framework 6.

"好的,那很好,"你可能会说,"但问题是什么?"

好吧,XML被反序列化为C#对象(从paste-special生成),并且它们的工作非常好.但是,每当来自服务的有效负载不包含某些字段时,当我将XML对象写入EF对象时,我得到一个空引用异常(这是一个类方法):

public ICollection GetObjects()
{
    List objs = new List();

    foreach (var i in XmlObject.SubObj.SubObj.SubObj)
    {
        objs.Add(new MyEfObject() {
            Prop1 = XmlObject.SubObj.SubObj.SubObj.ObjProperty // If "ObjProperty" is null,
                                                               // I get a null reference exception
        });
    }

    return objs;
}


所以,我有非常优雅的代码来检查

if (!ReferenceEquals(XmlObject.SubObj.SubObj.SubObj.ObjProperty, null) {
    // Do stuff
}

这通常会很好,但是对象太大了,我想避免输入150次以上(以及对象的所有对象属性).

必须有一个更优雅的方式,不是吗?

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有