【问题标题】:Adding new field to an existing Web Service custom type向现有 Web 服务自定义类型添加新字段
【发布时间】:2014-05-14 15:23:01
【问题描述】:

我有一个 Web 服务 GetPieByName,它返回一个自定义类型 Pie:

public Pie GetPieByName(string name)
{
Pie p = new Pie();
p.name = "Apple Pie";
return p;
}

class Pie {    
string name    
get set methods... 
}

Pie p 定义中只有名称。调用者 A 使用 Web 服务。

几个月后,Pie p 的定义得到了增强,包括重量、有效期。这将由呼叫者 B 使用。部署增强的 Web 服务后,我需要对呼叫者 A 做任何事情吗?如果我不刷新服务引用 wsdl 是否仍然有效?

【问题讨论】:

  • 什么样的服务? ASMX?
  • 是的,它是一个。 asmx 网络服务
  • ASMX 是一项遗留技术,不应用于新开发。 WCF 或 ASP.NET Web API 应该用于 Web 服务客户端和服务器的所有新开发。一个提示:微软已经在 MSDN 上停用了ASMX Forum
  • 更正。该服务是一个 .svc

标签: c# .net web-services asmx custom-type


【解决方案1】:

尽管类型中有其他属性,调用者 A 仍将照常工作。

但是,在刷新 WSDL 之前,Pie 的附加属性对调用者 A 是不可见的。

【讨论】:

    【解决方案2】:

    创建另一个处理 CALLER B 的 PIE 方法 然后在您的 GetPieByName() 上执行 if 语句 检查它是 CALLER A 还是 CALLER B

    【讨论】:

    • 对不起,这不能回答问题。此外,这将是代码的重复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 2016-02-01
    • 1970-01-01
    相关资源
    最近更新 更多