为什么我们无法在ASMX Web服务中返回List <T>?

Ser*_*glu 4 c# generics web-services list asmx

由于开发人员知道我们无法List<T>使用Web服务返回,因此我们只能将列表转换为.ToArray(); 我搜索了一些,但无法得到有效的答案为什么我们不能重新使用网络服务列表.为什么我们必须将它们转换成ToArray(); ?

Joe*_*ler 9

Web服务应该可以与许多语言互操作.几乎所有语言都有数组,但只有.NET具有List<T>您正在使用的特定实现.


Joh*_*ers 5

没有什么可以阻止您从List<T>ASMX Web服务返回.我不知道你为什么这么认为.

让您感到困惑的是XML Schema(由WSDL使用)本身无法描述"列表".实际上,它也无法描述数组.它可以描述一系列重复元素.所有集合(包括数组)都作为重复元素集返回.

在客户端,客户端没有办法知道服务器是否返回List<T>,T[]或者IEnumerable<T>,也没有理由去关心,无论是.