我想转换使用.NET Remoting的现有项目使用WCF。该项目的结构如下:.NET远程处理WCF - 构建解决方案以避免循环依赖
- UI
- BusinessLayer
的BusinessLayer项目是一个类库,它包含了客户端激活的对象DistributedProcessor
它有方法IResult Process(IJobProcessor)
。接口和具体类都在BusinessLayer库中。具体的类IJobProcessor
反过来在BusinessLayer中使用许多类。
对于.NET Remoting来说,这种情况非常理想。分布式部分只是一个包含BusinessLayer并侦听特定端口的Windows服务。客户端使用Activator.GetObject()
创建远程对象。
将其转换为WCF,我意识到我有一个循环依赖问题,如果我项目结构如下:
- UI
- BusinessLayer - 引用WcfService
- WcfService - 引用BusinessLayer
该服务需要对BusinessLayer的引用,以便我可以通过网络传输对象。 BusinessLayer需要引用WcfService,以便它可以调用WcfService上的IResult Process(IJobProcessor)
方法。
能否接口IResult
和IJobProcessor
移动到一个单独的项目BusinessLayerDistributed,如:
- UI
- BusinessLayer - 引用BusinessLayerDistributed
- BusinessLayerDistributed
- WcfService - 引用BusinessLayer,BusinessLayerDistributed
我的问题是:如果所有这些接口的具体类仍然在BusinessLayer中,那么在将对象转移到服务时,它们是否会作为其具体的类来充分水合?用WCF做这件事有什么窍门吗?
对于一些项目,我用这种方法取得了巨大的成功。 – ChaosPandion