我们正在开发 SOA,包括客户端 (Silverlight) 和服务器 (WCF) 端,但客户端可能由第 3 方(.NET、Java 等)实现。我们使用 WSDL 优先的方法,并希望我们的数据和服务接口类 (C#) 在构建过程中从模式中自动生成。因此,我们需要不为每个服务重新生成公共数据类代码才能成功编译。
我尝试了svcutil实用程序,尝试首先使用 /dataContractOnly 开关从 XSD 创建所有数据协定类,然后将它们编译为单独的类库 -第一阶段。然后创建每个服务接口代码,省略库中已有的类,使用 /reference 开关 -第二阶段。
问题是我们的模式不符合 DataContractSerializer 要求,因此 svcutil 无法创建数据类。即使在为此目的使用xsd实用程序之后,我也无法在第二阶段使用 svcutil 的 /reference 开关,因为此开关仅适用于 DataContract 类。xsd 实用程序生成的类并非如此。
那么,我是否缺少这些工具的某些内容,是否有任何方法可以在我的情况下使用它们,或者是否有任何其他工具可以从 XSD 和 WSDL 模式生成数据类和服务接口,以防几个人使用通用数据类型服务接口?或者我们不应该限制自己与 DataContract 兼容的模式?您使用什么方法进行 WSDL 优先开发?