在单个wsdl中具有多个方法名称重复的服务协定的WCF服务
本文关键字:服务 WCF 方法 wsdl 单个 | 更新日期: 2023-09-27 18:19:31
继续这个和这个问题。我有两份使用相同方法的服务合同:
[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);
}
}
根据我无法控制的原因:
- 这个答案不适合我,我需要保留原来的名字
- 这个答案不适合我,我需要一个wsdl文件。如果您使用不同的名称空间,当您尝试从服务主页打开单个wsdl时(http://addresToService/Service.svc?singleWsdl)获取错误:
System.NotSupportedException:无法为此服务生成单个WSDL文档。找到多个服务约定命名空间(IServices1、IServices2)。确保所有服务契约都具有相同的命名空间。
- 我需要一个带有多个端点的服务
- 我需要这样的服务(最好在WCF上)
总之,我需要具有多个服务契约的WCF服务,这些服务契约在单个wsdl中具有重复的方法名。有办法实现吗?
从wsdl文件生成类。保存的内容http://pastebin.com/277DFF7H在一个文件中,比如"service.wsdl"。不要忘记<?xml version="1.0" encoding="UTF-8"?>
标记必须位于第一列。
然后从Developer命令提示符运行wsdl.exeutil,如下所示:
wsdl service.wsdl /out:service.cs
现在您已经拥有wsdl所需的契约,并且可以进行任何需要的更改。
希望能有所帮助。