我正在使用以下方法的网络服务:
wsSascar2.SasIntegraWSClient w2 = new wsSascar2.SasIntegraWSClient();
List<wsSascar2.pacotePosicao> lista = w2.obterPacotePosicoes("user", "password", 0).ToList();
但是返回以下错误:
值不能为空。参数名称:source
问题在于我的代码还是webservice的返回?
Webservice:http://sasintegra.sascar.com.br/SasIntegra/SasIntegraWSService?wsdl
谢谢,
答案 0 :(得分:1)
obterPacotePosicoes
的返回值为null。尝试使用??
运算符并提供默认的空数组。
List<wsSascar2.pacotePosicao> lista =
(w2.obterPacotePosicoes("user", "password", 0)
?? new wsSascar2.pacotePosicao[0])
.ToList();
由于ToList
无法接受源参数的空值。
ArgumentNullException source为null。
答案 1 :(得分:0)
我认为该服务返回null。 试试下面的代码
wsSascar2.SasIntegraWSClient w2 = new wsSascar2.SasIntegraWSClient();
List<wsSascar2.pacotePosicao> lista = new List<wsSascar2.pacotePosicao>();
var result = w2.obterPacotePosicoes("user", "password", 0);
if(result != null)
lista = result.ToList();
答案 2 :(得分:0)
我刚遇到一个案例,当在WPF应用程序下使用Web服务时,“值不能为空”。
最终,这种错误在释放了一些磁盘空间后消失了,通过填充磁盘进行了两次验证,再次抛出了相同的错误。
希望获得帮助。