c# - WCF Web 服务方法建议

标签 c# wcf web-services

我的任务是实现一个可用于许多不同事物的 Web 服务方法(阅读:不存在任何要求)并且任何客户端都不必更改接口(interface)该方法应该如下所示

[DataContract]
    public class Status
    {
        [DataMember(Order = 0)]
        public long Code
        {
            get;
            set;
        }

        [DataMember(Order = 1)]
        public string Message
        {
            get;
            set;
        }
    }

[DataContract]
    public class Data
    {
        [DataMember(Order = 0)]
        public string Name
        {
            get;
            set;
        }

        [DataMember(Order = 1)]
        public string Value
        {
            get;
            set;
        }
    }

public Status InitiateTransaction(long txnTypeId, Data [] txnData);

这个想法是,客户端将根据他们想要启动的“事务”类型在数据数组中传递不同的内容。与仅仅创建一堆执行特定操作的不同专用方法相比,这样做有什么好处?

最佳答案

如果建议您实现此方法的人感到羞耻,请告诉他们这种模式是懒惰的明确标志。他们懒得去弄清楚行为的要求是什么,所以他们指定了一个方法;他们懒得去弄清楚数据的要求,因此他们决定名称/值对。

只有一种情况我发现这种东西很有用。我发现定义一个接受一段 XML 并返回一段 XML 的 Web 服务有一定的值(value),希望至少受 XML 模式的约束。当服务要与某些其他服务或根据 XML 文档操作的其他代码段进行交互时,这会很有用。一个例子是 EDI 场景,此时文档格式已由行业标准或协议(protocol)定义,并且 Web 服务实际上只不过是执行实际工作的服务的代理。

看起来你的例子没有这个借口。

关于c# - WCF Web 服务方法建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/769661/

相关文章:

.net - 如何使用存储的凭据调用 Web 服务?

c# - ASP.NET - 获取 DirectoryEntry/SID 的主体/相对标识符 (RID)

c# - 分配进程 ID C#

c# - .Net 流 : Returning vs Providing

c# - 在没有 IOC 的情况下管理 wcf 服务中的 DbContext 范围?

WCF - 部署证书

c# - WCF 找不到端点配置问题

c# - .NET C# 组件的通知或警报框架

c# - 使用 WebService 上传文件

c# - 如何在我的 Web 服务 POST 方法中反序列化 JSON