2012-07-06 87 views
0

我以前只在數據庫環境中編寫代碼。公司最近的變化讓我開始在全新的世界中發展。 這個新項目就像SQL - C# - PHP。WCF調用C#方法

我一直在VS2008上工作的類幾乎是dnoe。它調用我需要的所有SQL SP,並且DataReaders中的信息在那裏。 當它從PHP讀取這些信息,我可以填充網站時,我發現它並不那麼容易。我被推薦嘗試幾種選擇,適合項目最好的選擇是創建一個Web服務,然後使用它(請耐心等待,正如我剛纔所說,我是大多數Web相關編程的新手) 因此,我試圖WCF /休息,然後從PHP使用它,但我還沒有到那裏。

我已閱讀並觀看了WCF幾個教程和這似乎是光滑的,但我讀過的是:

用其OperationContracts創建接口。

使用DataMembers等創建服務並定義界面中列出的方法。

好吧,但我想要做的不是指定任何方法,因爲我只想調用我已經寫好的C#方法。 我應該在服務還是在界面中這樣做?首先,這是否是正確的方法來處理它?

回答

2

你會想編寫實現操作契約接口的服務方法。服務方法可以調用您已經編寫的C#代碼。

例如,下面是一個簡單的服務接口:

[ServiceContract] 
public interface IYourService 
{ 
    [OperationContract] 
    int GetCountOfTransactions(string filter); 
} 

然後你會實現你的服務類這個接口:

public class YourService : IYourService 
{ 
    public int GetCountOfTransactions(string filter) 
    { 
     // Call your existing code 
     YourClass yourClass = new YourClass(); 
     return yourClass.GetCountOfTransactions(filter); 
    } 
} 

有很多的例子在那裏設置此作爲一項REST服務,但我認爲你是在正確的軌道上。

最棘手的部分通常是設置綁定配置,以確保所有消費客戶端應用程序都可以連接。

希望這會有所幫助。

+0

非常感謝Garret!它已經幫助我了。如果我想讓方法GetCountOfTransactions返回一個Object(我的一個C#類),我不得不將該類引用到WCF WS項目中,那是對的嗎? – 2012-07-06 13:51:51

+0

沒問題,只需在班級中添加對圖書館或項目的引用,而且應該這樣做。 – 2012-07-06 13:56:22

+0

一切似乎工作,但這!希望你能再次啓發我,讓我可以完成這件事。當在服務類中寫入「return yourClass.GetCountOfTransactions(filter);」在你的課後。我看不到方法,只是屬性。所以我不能在yourClass之後的GetCountOfTransactions。類定義在一個項目中,而方法在另一個項目中(在方法的類中爲類的項目創建了一個引用)任何提示?對不起,再次感謝。 – 2012-07-06 14:17:49