如何使用svcutil.exe导出单个合同的元数据?

时间:2009-09-16 14:57:08

标签: wcf svcutil.exe

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

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

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

1 个答案:

答案 0 :(得分: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时,我得到一个带有来自2个接口的方法的wsdl 当我用/ excludeType:IREST运行svcutil时,我只得到IInterface方法。

svcutil /excludeType:NS.IREST ci2service.exe
你正在使用相同的配置吗?在这种情况下/excludeType有效。