1

我有两个作为接口实现的 ServiceContract。我只想导出其中一个的元数据。诀窍是两个接口都由同一个类实现。因此,我认为我不能使用 /excludeTypes。请在回答时包括示例语法。谢谢!

编辑:一位同事最近问我为什么这是必要的。原因是第一个ServiceContract 是针对 REST 服务的,为其导出元数据没有意义。因此,我生成了两个 wsdl 和 xsd 文件,仅因为第二个文件名附加了“1”而可以区分。这使得工具变得困难,并且给输出目录增加了更多的混乱。

我添加了一个赏金来尝试引起对这个问题的兴趣。

4

1 回答 1

2

我创建了一个服务合同类,实现了您所描述的 2 个接口。

namespace NS
{
    [ServiceContract]
    public interface IREST
    {
        [OperationContract]
        string WorldHello(string name);
    }

    [ServiceContract]
    public interface IInterface
    {
        [OperationContract]
        string HelloWorld(string name);
    }

    public class CI2 : IREST, IInterface
    {
        public string WorldHello(string name)
        {
            return "World Hello: " + name;
        }

        public string HelloWorld(string name)
        {
            return "Hello World: " + name;
        }
    }
}

正常运行 svcutil 时,当我使用 /excludeType:IREST 运行 svcutil 时,我得到一个带有来自 2 个接口的方法的 wsdl,
例如,我只得到 IInterface 方法。

svcutil /excludeType:NS.IREST ci2service.exe

你使用相同的配置吗?在这种情况下/excludeType有效。

于 2009-10-07T20:22:43.353 回答