我有一個接口[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'中)。 謝謝你這麼多
當你說「不工作」你會得到編譯器錯誤,運行時錯誤?究竟發生了什麼? –
1st Way:沒有向lx添加任何數據[請參閱:http://s2.ipicture.ru/uploads/20110921/Sl2ViVSX.png]。第二種方法:給出System.NullPointerException。 – meorfi
這聽起來像我iai.BasicInfo.Tax爲空,這將解釋#2空引用異常,爲什麼你沒有任何數據在#1(有一個空引用)。你可以在調試器中停止並驗證,或記錄/控制檯是否爲null? –