繁体   English   中英

反映PropertyInfo.GetValue

[英]Reflection PropertyInfo.GetValue

我是C#中使用反射的新手。 任何帮助深表感谢。

PropertyInfo.GetValue(obj,null)给出了一个对象值。

如果数据库中列的值为null,则会出现Null异常:

System.Reflection.TargetInvocationException:调用目标抛出了异常。 Microsoft.SqlServer.Dts.Pipeline.ColumnIsNullException:该列具有空值。

如何处理这种情况? 我应该循环遍历所有列并保留具有空值的列。

您应该能够直接检查'Null',如下所示

if(propInfo.GetValue(this, null) != null) {
    }

该财产的吸气者正在抛出一个除外。 它试图告诉你该物业没有价值。

您应该能够检查PropertyName_IsNull (其中PropertyName属性的名称)以检查属性是否为空。 如果为null,则适当处理,否则使用您已编写的代码。

来自MSDN

每个选定输入列的<column> _IsNull属性。 此属性也是只读或读/写,具体取决于为列指定的使用类型。

PropertyInfo.GetValue(obj, null)正在对象obj上执行属性get方法。 在get方法中抛出异常。 您需要查看要调用的属性get方法,并确定何时/为什么抛出异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM