【发布时间】:2014-05-19 18:23:24
【问题描述】:
我可以在同一个服务中有两个名称相同(但签名不同)的操作吗?
例子:
[ServiceContract]
public interface IMyService {
[OperationContract]
bool MyOperation(string target);
[OperationContract]
bool MyOperation(List<string> targets); }
我真的需要支持不同的签名,因为我有几个团队在使用我的服务,而只有一个团队需要第二个签名(我不希望团队的其他人不得不更改他们的代码)。
有什么想法吗?
【问题讨论】:
-
不要使用值类型参数,use data contracts。您可以为您的
MyOperationRequest数据合同提供两个属性(string Target和List<string> Targets)或类似的东西,并检查设置了哪一个。或者尝试仅使用List<string>并请求至少设置一项。 -
我知道数据合约,但我正在做代码维护。代码很旧,是由其他团队开发的。我无法更改当前界面以使用数据合同(这会影响其他团队),但需要支持新界面(对于请求它的团队)。我想唯一的办法就是给它起不同的名字。谢谢你的时间:)
标签: web-services wcf