2011-09-21 144 views
0

我有一個接口[BindControls],它從GUI獲取數據並將其存儲到列表「ieis」中。如何將對象列表轉換爲另一個列表。

在那之後,到另一個類,它通過Web服務發送該數據,我想從「的IEI」取這些數據,並把它放入由WS類字段需要(底部是一個代碼片段)

這是接口:

void BindControls(ValidationFrameBindModel<A.B> model) 
     { 
      model.Bind(this.mtbxTax, (obj, value) => 
      { 
       var taxa = TConvertor.Convert<double>((string)value, -1); 

       if (taxa > 0) 
       { 
        var ieis = new List<X>(); 

        var iei = new X 
        { 
         service = new ServiceInfo 
         { 
          id = Constants.SERVICE_TAX 
         }, 
         amount = tax, 
         currency = new CurrencyInfo 
         { 
          id = Constants.DEFAULT_CURRENCY_ID 
         } 
        }; 
        ieis.Add(iei); 
       } 
      },"Tax"); 
     } 

這是中間屬性:

// * ** * ** * ** *

class A 
{ 
    public B BasicInfo 
     { 
      get; 
      set; 
     } 

class B 
     { 

      public X Tax 
      { 
       get; 
       set; 
      } 
     } 
} 

// * ** * ** * ** * *

這是發送通過類WS:

void WebServiceExecute(SomeType someParam) 
     { 
//into ‚iai’ i store the data which comes from interface 

      var iai = base.Params.FetchOrDefault<A>(INFO, null); 

      var convertedObj = new IWEI(); 
      //...    
      var lx = new List<X>(); 

//1st WAY: I tried to put all data from ‚Tax’into my local list ‚lx’ 
      //lx.Add(iai.BasicInfo.Tax); - this way is not working 

    //2nd WAY: I tried to put data separately into ‚lx’ 
      var iei = new X 
      { 
       service = new ServiceInfo 
       { 
        id = iai.BasicInfo.Tax.service.id 
       }, 
       amount = iai.BasicInfo.Tax.amount, 
       currency = new CurrencyInfo 
       { 
        id = iai.BasicInfo.Tax.currency.id 
       } 
      }; 

      lx.Add(iei); 

// but also is not working 

你能幫我請建議如何實施一種可以很好地完成這項工作的方法(將數據從ieis'中提取出來並放到lx'中)。 謝謝你這麼多

+1

當你說「不工作」你會得到編譯器錯誤,運行時錯誤?究竟發生了什麼? –

+0

1st Way:沒有向lx添加任何數據[請參閱:http://s2.ipicture.ru/uploads/20110921/Sl2ViVSX.png]。第二種方法:給出System.NullPointerException。 – meorfi

+1

這聽起來像我iai.BasicInfo.Tax爲空,這將解釋#2空引用異常,爲什麼你沒有任何數據在#1(有一個空引用)。你可以在調試器中停止並驗證,或記錄/控制檯是否爲null? –

回答

1

正如我的評論所指出的,它看起來像iai.BasicInfo.Tax爲空,一旦你發現這是爲什麼空你原來Add()(#1)將工作。

+0

我發現Tax是空的。在我建立了將值放入其中的機制後,所有工作都正常。謝謝 – meorfi

相關問題