2010-07-12 77 views
0

正在構建我的自定義組件。我試圖通過 的getProperty( 「PROPERTYNAME」)來讀取PipleBuffer值的GetValue()如下: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(); 

在行緩衝[1]的ToString()做工精細, 但下一行失敗拋:

的NullReferenceException:對象引用不設置到對象

任何線索請的一個實例。

無法在保護級別下創建PipleBuffer的對象實例。

+0

Whate究竟是你想要完成的代碼? – 2010-07-12 14:58:25

回答

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

注意這僅用於診斷目的。我不建議你把它保存在你的代碼中!