GetProperty - 通过反射+ SSIS自定义组件读取属性

时间:2010-07-12 03:00:59

标签: c# ssis custom-component

正在构建我的自定义组件。我试图读取PipleBuffer的值 GetProperty(“propertyname”)。GetValue()如下:

    public override void ProcessInput(int inputID, PipelineBuffer buffer)
    {
        while (buffer.NextRow())
        {
            string nk = buffer[1].ToString();
            string nk1 = buffer.GetType().GetProperty("NK").GetValue(buffer, null).ToString();

在行缓冲区[1] .ToString()工作正常, 但在下一行它失败了:

NullReferenceException:对象引用未设置为对象的实例

请提供任何线索。

无法在保护级别下创建PipleBuffer的对象实例。

1 个答案:

答案 0 :(得分:0)

buffer.GetType().GetProperty("NK")为空,或buffer.GetType().GetProperty("NK").GetValue(buffer, null)为空。

按如下方式更改您的代码并找出:

PropertyInfo prop = buffer.GetType().GetProperty("NK");
if (prop == null)
{
    throw new Exception("prop is null!");
}

object value = prop.GetValue(buffer, null);
if (value == null)
{
    throw new Exception("value is null!");
}

string nk1 = value.ToString();

请注意,这仅用于诊断目的。我建议你不要在代码中保留这个内容!