这些WCF服务引用文件是什么

Mar*_*tin 10 wcf file service-reference visual-studio-2008 visual-studio

在Visual Studio 2008中添加WCF服务引用时,将创建名为Service Reference\ServiceReferenceNamespace的目录.

在此目录中,有名为Service.xsd,Service1.xsd,Service2.xsd,Service3.xsd和Service4.xsd的文件.这些文件不是重复的 - 不同的文件定义了不同的类型和元素.当我第一次创建服务引用时,只有一个文件,但是当我添加了更多DataContract和OperationContracts时,添加了更多Service*文件.

生成5个不同的文件而不仅仅是一个文件看起来有点奇怪.如果我删除服务引用(以及目录)然后再次添加它,则会再次添加相同的文件.

任何人都可以解释为什么创建几个文件而不只是一个?

ale*_*dej 5

当您执行添加服务引用时,VS首先下载描述服务的元数据(作为WSDL和XSD文件).这些存储在ServiceReference目录中.然后VS使用这些文件作为输入运行代码生成步骤,生成Reference.cs或.vb作为输出.

  • 每个类型命名空间你会得到一个xsd文件.对于使用DataContractSerializer的WCF服务,您通常会为每个类型使用的CLR命名空间获取一个XSD命名空间,另外还有一个用于内置类型的命名空间.如果要将所有应用程序定义的类型放入一个XSD名称空间,可以使用[DataContract(Namespace ="...")]将其设置为任何URI. (4认同)
  • 可能我没说清楚。我的问题是为什么有 Service1.xsd、Service2.xsd、Service3.xsd 和 Service4.xsd 而不仅仅是 Service.xsd。 (2认同)