我知道在这个主题上也有类似的问题,但是我不确定他们是否正在解决相同的问题。所以只是要清楚...
我有一个现有的类库,其中包含用于类型,业务逻辑和数据访问的 namespace 。逻辑和数据访问 namespace 中的类是静态的,并且具有基本的crud方法,以用数据填充类型实例,或采用已经满的类型实例并在数据库中进行插入或更新。
现在,除了直接引用该库的现有应用程序之外,我还想创建一个WCF服务,以便其他应用程序可以这种方式使用对象和方法。
我看到的每个WCF教程都会在服务项目中创建域对象-但我不想在两个地方定义我的对象。
所以我在想可以在现有的类库中引用序列化并将类型类标记为[DataContract],将属性标记为[DataMember]。然后,在WCF项目中,使用[OperationContract]方法创建[ServiceContract]接口(interface),以匹配我要公开的现有库中的静态逻辑类和方法。然后,从WCF项目中引用现有的类库,并通过在其中包含调用现有库逻辑方法(返回现有库类型)的方法来实现WCF接口(interface)。
这是一个好模式吗?
最佳答案
听起来不错,但改装序列化往往比起初看起来要麻烦得多。我建议您将一些轻量级数据契约构建到服务层中,然后在服务层和业务层之间构建一个小的层,以将数据契约转换为业务对象,反之亦然。
关于wcf - 在WCF中公开现有业务对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/942952/