gpt4 book ai didi

wcf - 在 WCF 中使用 IEnumerable 类型作为返回类型的问题

转载 作者:行者123 更新时间:2023-12-04 02:57:06 25 4
gpt4 key购买 nike

从现在开始,我一直在尝试找到一个具体的答案来解释为什么 IEnumerable 类型在将它们用作操作契约(Contract)中的返回类型时会导致奇怪的错误。

我遇到了很多文章和论坛发帖,但到目前为止,我所拥有的是如何防止其他替代解决方案(如对象数组或通用列表 List)出现错误。

我希望社区成员建议更多相关的帖子或任何可以解释这种 WCF 行为的引用 Material 。

最佳答案

WCF 使用消息传递系统——它将调用和返回值序列化为 XML 序列化消息。

因此,它只能处理可以用 XML 模式表达的东西——而接口(interface)不能用 XML 模式表达。

尝试使用 混凝土类型 (一个 List<T> 或一个数组)代替 - 那些应该工作得很好。

有一些方法可以解决这个问题——但是在这个过程中你会牺牲与非 .NET 客户端的任何互操作性:你可以使用 NetDataContractSerializer (见 this blog postarticle by Aaron Skonnard on NetDataContractSerializer );有了这个,你基本上在你的序列化消息中嵌入了额外的 .NET 运行时信息。这将使您的消息更大,并且任何非 .NET 客户端都不会理解这一点,但如果您控制线路的两端并且两端都只是 .NET,那么这可能是一种解决方法。

这也支持使用接口(interface)作为你的服务方法参数——虽然不确定返回类型。

我通常不建议这样做 - 但根据您的情况和需要,这可能是您的替代方案。看看这个!

关于wcf - 在 WCF 中使用 IEnumerable 类型作为返回类型的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5853554/

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