我有一个接口[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? –