Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 面向多客户系统的动态web服务设计_C#_Xml_Web Services - Fatal编程技术网

C# 面向多客户系统的动态web服务设计

C# 面向多客户系统的动态web服务设计,c#,xml,web-services,C#,Xml,Web Services,我正在做一个项目,我需要重构我的web服务,因为它们将被不同的客户使用。问题是这些不同的客户可能希望根据他们的需要发送或接收一些自定义数据。我将试着用一个例子来解释它 假设我们为客户提供了两个web服务 WS_GetUsers |输入:无|输出{用户名、IsActive、姓名、姓氏}列表 WS_GetUserInfo |输入:用户名|用户名,IsActive,姓名,姓氏 我们有两个客户Cust1和Cust2使用相同的web服务。但是Cust1希望我们改变我的WS_GetUsers服务。因为他们只

我正在做一个项目,我需要重构我的web服务,因为它们将被不同的客户使用。问题是这些不同的客户可能希望根据他们的需要发送或接收一些自定义数据。我将试着用一个例子来解释它

假设我们为客户提供了两个web服务

  • WS_GetUsers |输入:无|输出{用户名、IsActive、姓名、姓氏}列表
  • WS_GetUserInfo |输入:用户名|用户名,IsActive,姓名,姓氏
  • 我们有两个客户Cust1Cust2使用相同的web服务。但是Cust1希望我们改变我的WS_GetUsers服务。因为他们只想看到活动用户(其中IsActive=1)

    所以,我只想为这两位客户提供两项服务。但我不想更改服务的输入/输出参数。因为Cust2不想改变任何服务,所以我不应该打扰他们

    与此同时,Cust2意识到他们需要另一个信息,LastLoginDatime,我们不将其存储在数据库中。假设我们做了一些神奇的工作,并开始储存这些信息。但这里也出现了同样的问题,现在我需要将该信息作为两个服务的响应发送。但Cust1不应受到这一变化的影响

    目前,我们使用键值对数组作为输入和输出来解决这个问题。但我想知道是否有一种方法或途径(或者你们的建议)可以用于多机构/客户的web服务


    注意:这个问题与服务i/o参数有关。根据输入更改业务流程目前不是问题。

    我认为您的案例非常适合OData web服务。您可以创建端点并返回IQueryable,客户端将能够发送查询、展开响应等