gpt4 book ai didi

c# - 如何通过 WCF 服务发送 IList?

转载 作者:太空宇宙 更新时间:2023-11-03 19:28:31 25 4
gpt4 key购买 nike

我想在我的 WCF 服务中使用 NHibernate,如何通过 WCF 服务发送 IList?

---编辑-------

我可以将 IList 放入一个 object 变量中并发送吗?

最佳答案

试图传递 IList<T>不太适合基于 WCF 的服务。

WCF 在数据契约方面进行讨论,定义服务或客户端期望发送和接收的数据的形状。这些契约必须足够具体,以便序列化程序知道如何将它们转换为 XML、JSON 和其他表示形式。

当你放置一个像IList<T>这样的接口(interface)时在您的服务契约(Contract)中,您没有向序列化程序提供有关数据指定形状的足够信息。你只关心发送IList<T>吗?实现的一部分?您是否对实现该接口(interface)的东西所包含的任何其他有状态数据感兴趣?序列化程序无法知道。

最简单的解决方案是在 WCF 中使用基本数据传输对象。这些是简单的类,仅负责表示要通过媒体传输的信息。这些类只包含具体类型,序列化程序很容易理解。当您想要发送消息时,您可以创建这些对象的实例并用数据填充它们。

对于您的示例,创建 List<T>而不是 IList<T>并将值复制到列表中,然后再将其传递到服务中。一个简单的方法是使用 Enumberable.ToList<T>() 扩展方法。

关于c# - 如何通过 WCF 服务发送 IList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6730912/

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