gpt4 book ai didi

c# - 如何从 Web 服务返回 IEnumerable

转载 作者:太空狗 更新时间:2023-10-29 22:55:17 28 4
gpt4 key购买 nike

我想知道为什么我不能返回 IEnumerable<T>通过网络服务。

在我的网络服务中,我返回一个 IEnumerable<T>但是当我在 VS 2010 中检查 IntelliSense 时,我看到它给了我一个 T[] .

谁能给我解释一下这种行为?

最佳答案

来自 MSDN :

我可以在 Web 服务中使用泛型吗?

不幸的是,没有。 Web 服务必须公开基于 WSDL 的契约。这样的契约(Contract)总是受到所使用的消息格式的表达能力的限制。例如,基于 HTTP-GET 的 Web 服务仅支持 int 或 string 等原始类型,而不支持 DataSet 等复杂类型。基于 SOAP 的 Web 服务能力更强,但 SOAP 没有能力表示泛型类型参数。因此,目前您无法定义依赖于通用类型的 Web 服务。也就是说,您可以定义依赖于封闭构造泛型类型的 .NET Web 服务,例如:

public class MyWebService 
{
[WebMethod]
public List<string> GetCities()
{
List<string> cities = new List<string>();
cities.Add("New York");
cities.Add("San Francisco");
cities.Add("London");
return cities;
}
}

在上面的示例中,List 将被编码为字符串数组。

关于c# - 如何从 Web 服务返回 IEnumerable<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4719407/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com