我想轉換使用.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