【发布时间】:2010-09-10 14:50:32
【问题描述】:
我希望能够创建可用于两个不同工作流程的标准 POCO 服务:
- 进程中,即由我的 ASP.NET 网络表单应用程序使用
- 通过公开的 WCF 端点远程访问以供其他应用程序使用
有没有办法在上述两种情况下重用相同的服务及其返回数据类型?理想情况下,我的核心服务和数据类型不必使用 WCF 特定属性进行修饰,我可以将这些属性添加到某种 WCF 外观层中。
谢谢!
【问题讨论】:
我希望能够创建可用于两个不同工作流程的标准 POCO 服务:
有没有办法在上述两种情况下重用相同的服务及其返回数据类型?理想情况下,我的核心服务和数据类型不必使用 WCF 特定属性进行修饰,我可以将这些属性添加到某种 WCF 外观层中。
谢谢!
【问题讨论】:
从 .NET 3.5 开始,您无需使用 WCF 相关属性(DataContract、DataMember)来装饰您的数据对象。如果您不使用它们,将使用默认序列化 - 所有具有公共 getter 和 setter 的属性都将被序列化(类也必须具有公共无参数构造函数)。
正如您所描述的那样,共享“服务”层非常有效。您创建公开功能的业务服务层。此功能由您的 ASP.NET 应用程序在进程内使用。然后您创建包装层,该包装层标记有 WCF 相关属性并公开为 WCF 服务。您的 WCF 层可以作为外观处理,并将多个业务调用复合到单个 Web 服务调用。
【讨论】: