反映PropertyInfo.GetValue

时间:2011-09-07 16:46:30

标签: c# reflection ssis

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

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

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

  

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

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

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

来自MSDN

  

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

答案 2 :(得分:2)

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