gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 15:10:45 27 4
gpt4 key购买 nike

我想知道在 WCF 中是使用多个操作契约更好还是只使用一个具有多态数据契约的操作契约。

让我举个小例子:

[OperationContract]
action1Answer action1(action1data a);

[OperationContract]
action2Answer action2(action2data a);

[OperationContract]
actionAnswer action(actionContract a);

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

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

最佳答案

这个问题与 OO 多态性和 SOA 的圣战边缘接壤,但我会提供我的两分钱:

当您考虑开发服务层时,服务的最终消费者应该清楚要传递什么以及期望什么;方法 2 处理得不好。 (此外,当使用 WCF 执行 SOAP 然后从其他 .NET 项目中的 wsdl 加载时,它没有正确标记抽象类,也没有传输接口(interface)。WSDL 没有办法描述不可实例化的基类,看起来.)

不过,我必须承认,我认为使用 KnownTypeAttributes 的第二个过程很棒(正如我刚才看到的 marc_s 发布的那样)- 我自己在考虑未知的 future 需求时使用了它。

关于c# - 在 WCF 中,具有多个操作契约更好还是只有一个具有多态数据契约的操作更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3006364/

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