2010-07-12 3 views
0

내 사용자 지정 구성 요소를 빌드하는 중입니다. 라인 버퍼 [1]로 .toString() 일을 잘, 에서GetProperty - 리플렉션 + SSIS 사용자 지정 구성 요소를 통해 속성 읽기

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(); 

하지만 다음 줄에 그것을 던져 실패합니다. GetProperty를 ('PROPERTYNAME ")에 의해 PipleBuffer의 값을 읽고 아래 GetValue()를 시도하고있다 :

는 NullReferenceException : 개체 참조가

모든 단서가 만족 개체의 인스턴스로 설정되지 않았습니다.

보호 수준에서 PipleBuffer의 개체 인스턴스를 생성 할 수 없습니다.

+0

정확하게 코드를 작성하려고하십니까? –

답변

0

buffer.GetType().GetProperty("NK")이 null이거나 buffer.GetType().GetProperty("NK").GetValue(buffer, null)이 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(); 

참고. 이 코드를 코드에 보관할 것을 제안하지 않습니다!

관련 문제