2011-03-23 88 views
0

我們已經在我們的應用程序中提供了業務邏輯層。它有很多類。這是在單獨的庫(.Dll)中。現在我們想把它用到我們的WCF服務中。爲此,我們創建了新項目並給出了.Dll的參考。但我們無法看到我們的班級..我確認班級是公開的..WCF服務中的業務邏輯層公開

請問我該怎麼辦?

這裏我附上我的代碼是什麼,我需要做

我的業務層類

namespace BusinessLayer 
{ 
    public class MessageContext : Dictionary<string, object> 
     { ....} 
} 

現在我引用這個項目到我的WCF項目,並試圖揭露這一類爲WCF客戶端。所以我創建一個MessageContextHelper類從MessageContext的繼承代碼以下

namespace WCFService 
{ 
    public class MessageContextHelper : MessageContext 
     { ...... } 
} 

在客戶端我沒能獲得MessageContextHelper類。

感謝 JK

回答

2

WCF不發送業務邏輯類客戶端。如果您使用WCF的SOAP版本(例如BasicHttpBinding),那麼WCF將公開的是您的服務合同中的方法。你的客戶可以打電話給他們

因此,如果您想要公開業務邏輯類中的方法,請在您的WCF服務中創建方法,然後再調用業務層方法。

一個非常基本的(不完整)的版本將是這個樣子:

命名空間WCFService {

public class MyService: IMyService 

[OperationContract] 
public String DoSomeStuff() { 
     return MessageContext.DoSomething(); 
} 

}

1

你絕對不能(也不應該)使用您的業務層從您的客戶端代碼。作爲之前的回覆消息,WCF不會將您的商務類發送給客戶端。考慮發送需要多長時間。業務層(您的dll)只能在服務器上使用。您的WCF應該只接受來自客戶端的修改/新數據,將數據傳遞給業務層,然後將結果返回給客戶端。