使用WCF的模式优先服务开发的项目结构

本文关键字:开发 项目 服务 结构 WCF 模式 使用 | 更新日期: 2023-09-27 18:04:06

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

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

目前,我指的是" Autogenerated_Service_Project "里面的" Business_Project "。

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

当WSDl发生更改时,挑战就来了。当WSDL被更改时,"Autogenerated_Service_Project"将被重新创建,上面提到的代码将丢失。

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

注:" Autogenerated_Service_Project "是最上面的项目。理想情况下,它不能被任何其他项目引用。

使用WCF的模式优先服务开发的项目结构

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

这可以通过在另一个文件中使用分部类来解决。问题中给出的代码可以移动到这个新的部分类文件中。即使重新创建自动生成的文件,该文件也将持续存在。