值不能为null参数名称:source

时间:2014-09-04 11:27:58

标签: c# web-services visual-studio webservice-client

我正在使用以下方法的网络服务:

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

谢谢,

3 个答案:

答案 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服务时,“值不能为空”。

最终,这种错误在释放了一些磁盘空间后消失了,通过填充磁盘进行了两次验证,再次抛出了相同的错误。

希望获得帮助。