GetProperty - чтение свойства с помощью отражения + пользовательский компонент служб SSIS - PullRequest
0 голосов
/ 12 июля 2010

Я в процессе сборки моего пользовательского компонента.Я пытаюсь прочитать значения PipleBuffer с помощью GetProperty ("имя свойства"). 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 голосов
/ 12 июля 2010

Либо 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();

Обратите внимание, что это только для диагностических целей. Я не предлагаю вам сохранить это в своем коде!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...