具有多个服务契约的WCF服务,在单个wsdl中具有重复的方法名称

时间:2015-10-28 10:32:17

标签: c# web-services wcf soap wsdl

继续http://ibm.biz/bluemixsupportthis个问题。 我有两个服务合同,使用相同的方法:

[ServiceContract]
public interface IServices1
{
    [OperationContract]
    string GetData(int value);
}

[ServiceContract]
public interface IServices2
{
    [OperationContract]
    string GetData(int value);
}

服务:

public class Service : IServices1, IServices2
{
    string IServices1.GetData(int value)
    {
        return string.Format("You entered: {0}", value);
    }

    string IServices2.GetData(int value)
    {
        return string.Format("You entered: {0}", value);
    }
}

根据我无法控制的原因:

  • this回答不适合我,我需要保留原来的名字。
  • this回答不适合我,我需要单个wsdl文件。如果您使用不同的命名空间,当您尝试从服务主页(this)打开单个wsdl时会收到错误:
  

System.NotSupportedException:无法为此服务生成单个WSDL文档。找到了多个服务合同命名空间(IServices1,IServices2)。确保所有服务合同都具有相同的命名空间。

总结一下,我需要WCF服务与多个服务契约在单个wsdl中具有重复的方法名称。有没有办法实现它?

1 个答案:

答案 0 :(得分:1)

从wsdl文件生成类。 将http://pastebin.com/277DFF7H的内容保存在文件中,例如&#34; service.wsdl&#34;。不要忘记<?xml version="1.0" encoding="UTF-8"?>标记最初必须像第一列一样。

然后从开发人员命令提示符运行 wsdl.exe util,如下所示:

wsdl service.wsdl /out:service.cs

现在您拥有wsdl要求的合同,您可以进行所需的任何更改。

希望它有所帮助。