1

我有 WSDL 和 XSD 作为起点。(WSDL 是使用 WCSF Blue 工具从 XSD 生成的)。使用工具从 WSDL 生成服务代码。项目名称为“Autogenerated_Service_Project”。在这个项目中,它将有 [ServiceContract] 和 [DataContract] 类。它有一个名为“EmployeeDataContract”的数据合约。在 GetEmployee() 服务操作中,这个数据契约被返回给客户端。

我有一个名为“Business_Project”的业务层项目。它有一个返回“Employee”实体对象的方法。

目前,我指的是“Autogenerated_Service_Project”中的“Business_Project”。

Business_Project.MyClass b = new Business_Project.MyClass();
EmployeeDataContract d = b.GetAssociate();
return EmployeeDataContract;

当 WSD1 发生变化时,挑战就来了。更改 WSDL 后,将重新创建“Autogenerated_Service_Project”,上述代码将丢失。

克服此代码丢失的解决方案是什么?

注意:“Autogenerated_Service_Project”是最顶层的项目。理想情况下,它不能被任何其他项目引用。

4

2 回答 2

2

您可以更改调用业务层的方式(可能您的解决方案需要额外的层)
但是以简单的方式,您可以生成一次代理,当 WSDL 发生更改时手动处理更改,或者仅将该工具用于新服务。
如果 WSDL 上的服务是细粒度的,则该解决方案可能适用。

于 2013-03-16T17:35:09.283 回答
1

这可以通过在不同的文件中使用部分类来解决。问题中给出的代码可以移动到这个新的部分类文件中。即使重新创建自动生成的文件,该文件也会保留。

于 2013-03-18T11:09:16.933 回答