问题标签 [operationcontract]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
12543 浏览

wcf - 影响客户端的 WCF 合同更改

我很好奇是否有人可以概述服务器端哪些类型的 WCF 合同(接口)更改会破坏客户端尝试发送消息,以及为什么。我相信 WCF 可以处理某些差异,但我不确定您可以安全地更改哪些内容,以及您不能安全更改哪些内容。

  • 从 OperationContract 添加/删除参数?
  • 添加/删除/更改 DataContract 的序列化属性?
  • 从 ServiceContract 添加/删除 OperationContracts?

有朋友在这里问过类似的问题:

向 WCF ServiceContract 添加方法会破坏现有客户端吗?

编辑:正如 John Saunders 所指出的,更改合同通常不是一个好主意,但有些内置的东西允许一些版本容差(ExtensionDataObject 等?)。我只想知道版本容差有多灵活。

0 投票
5 回答
4338 浏览

wcf - WCF 消息契约继承

我对 WCF 相当陌生,只是对如何正确获取 MessageContract 继承有疑问。我的设置的简化版本如下 - 一个“基本”消息类型,然后是另一个继承自它的“测试”消息。

然后,我在 ServiceContract 上有一个异步 OperationContract,定义为:

我遇到的问题是,当调用 BeginFindRequest 方法并为请求参数传入 TestMessage 实例时,WCF 框架将 TestMessage 实例反序列化为服务/服务器端的 BaseMessage。由于这被定义为抽象类,因此会导致以下错误:

“消息无法反序列化为 MessageContract 类型 BaseMessage,因为它没有默认(无参数)构造函数。”

从我可以找到的关于 MessageContract 继承的有限信息来看,它似乎应该可以工作。

所以我的问题是——为了让它发挥作用,我缺少什么;或者我是否应该在 ServiceContract 上专门为该类型定义一个单独的 OperationContract - 缺点是我最终可能会得到许多额外的 OperationContract?

0 投票
3 回答
3903 浏览

wcf - WCF:许多方法上的相同故障契约

以一个有 10 个服务和每个服务 20 个方法的项目为例。

所有服务都继承自具有安全检查的基础服务。每个方法做的第一件事就是调用安全检查。如果出现问题,这会引发安全异常。

问题是:我是否需要在每个方法(OperationContract)上指定一个 FaultContract,或者我可以在一个中心定义中执行一次吗?

0 投票
2 回答
14604 浏览

c# - WCF OperationContract - 我应该公开哪种通用集合类型?

我有一个 WCF Web 服务,它有一个返回泛型集合的方法。现在,我的问题是:我应该将其公开为ICollection<T>, List<T>,IList<T>还是IEnumerable<T>其他?

我想这List<T>是不可能的,因为我想避免CA1002 错误,但基础类型将是 a List<T>

我真的很想听听你对此的看法,最好能很好地解释你为什么这么想。

提前致谢

0 投票
1 回答
982 浏览

ajax - “OperationContractAttribute”+ wcf 的“AsyncPattern”属性有什么用?

因此,对于使用过的启用 ajax 的 wcf 服务,可以从数据库中获取记录并将其显示在客户端,而无需使用...AsyncPattern的属性OperationContractAttribute

  • 我什么时候应该考虑AsyncPattern财产?

我的操作合同方法示例,

0 投票
2 回答
6010 浏览

c# - WCF 类在同名的不同服务契约中实现两个操作契约

我已经声明了两个服务合同如下:

我有一个实现这两个合同的类。我为两个合同创建了两个端点。但我无法从客户端代码访问服务。当我尝试将服务参考更新为:

元数据包含无法解决的错误.... 没有端点正在监听 ... 等。

我知道你不能有两个OperationContract同名的s,但是是否可以在不同的服务合同中拥有两个同名但签名不同的操作合同?

0 投票
2 回答
1892 浏览

c# - 在 WCF 中,多态数据契约是拥有多个操作契约还是只有一个操作更好?

我想知道在 WCF 中使用多个操作合同或只有一个操作合同与多态数据合同是否更好。

让我给你一个小例子:

或者

动作契约将是一个抽象类,action1Contract 和 action2Contract 都将从中继承。动作契约将do()在其接口中指定成员函数,而该成员函数又将在子类中重载

个人而言,我发现第二种方法更有趣,因为它允许您将数据和操作很好地封装在派生的 actionContract 中,从而更容易添加新操作。但这是我第一次使用 WCF,所以您可能更了解!

0 投票
1 回答
774 浏览

c# - 设计 WCF 合同(操作/数据)

我目前正在寻求设计一些 WCF 服务,并希望获得社区对处理操作/数据合同的最佳方式的意见。

我有 2 个基本操作合同,第一个创建报价,第二个在报价中添加项目(并在幕后计算总数)。

第一个接收客户信息商店信息返回报价

第二个接受报价项目对象,计算总数并返回项目的报价

我的问题是关于如何在这种情况下设计数据合约?

对于CreateQuote,应该传入一个带有客户属性和商店属性集的报价对象,还是应该有某种包含客户和商店对象但没有传入报价对象的 QuoteRequest 对象?

对于AddQuoteItem,是否应该使用包含 Quote 对象的必需属性集传入 QuoteItem 对象,或者是否应该存在具有 Quote 对象和 item 对象(没有关系)的 QuoteItemRequest 对象,然后使用 QuoteItem 对象重新计算 Quote回来?

换句话说,它们应该看起来像这样吗?

或者他们应该看起来像这样?

0 投票
3 回答
1323 浏览

.net - 如何创建通用 WCF OperationContract 以从 SQL 表中检索数据

我的任务是为将检索数据库的表创建一个 .net 接口。

接口必须做的一件显而易见的事情是从表中检索数据。

所以....我可以编写一个简单地执行Select * from MyTable;然后返回结果的函数。但是,该表有十列,使用该界面的人可能希望按一列或多列过滤数据。我可能需要类似的东西Select * from MyTable where LastName like 'A%';。如何将我的界面设计为从表中下载数据的灵活单点入口?

有人告诉我,由于带宽问题,任何涉及从服务器拉下整个表然后在 .net 代码中过滤结果的解决方案都是不可接受的。

注意:我还想补充一点,从 SQL 表中检索数据的代码称为 WCF 服务;然而,数据被检索,它必须作为可序列化数据返回给调用者,而不是作为任何类型的引用。

澄清:我所说的“接口”只是指一个被调用以从 SQL 表中检索数据的函数。我意识到“接口”这个词有点令人困惑。我在做什么有一个词,但我不知道它是什么。

0 投票
2 回答
21971 浏览

c# - 如何根据需要指定 OperationContract 的参数

我想知道如何根据需要在 WCF 中指定 OperationContract 方法的参数,以便生成的 xsd 包含 minOccurs="1" 而不是 minOccurs="0"。

例子:

生成这个 xsd:

但是我想在代码中定义 minOccurs="1" 而无需在 xsd 文件中手动修复它。