2013-04-29 23 views
1

我正在爲不同的客戶端創建Web服務。所以,我有3類3種不同類型的客戶端:如何製作具有不同屬性的C#模板

類型1:

[WebMethod] 
[SoapRpcMethod(Use = System.Web.Services.Description.SoapBindingUse.Literal)] 
public string databaseConnectionInfo() 
{ 
    return WSExecute.Executer.databaseConnectionInfo(System.Web.HttpContext.Current); 
} 

類型2:

[WebMethod] 
public string databaseConnectionInfo() 
{ 
    return WSExecute.Executer.databaseConnectionInfo(System.Web.HttpContext.Current); 
} 

類型3:

[WebMethod] 
public XmlDocument databaseConnectionInfo() 
{ 
    return this.convert(WSExecute.Executer.databaseConnectionInfo(System.Web.HttpContext.Current)); 
} 

正如你所看到的功能幾乎是相同的 - 他們都稱同一個工作班,只是他們在attirbutes(Type1與Type2)不同或稱之爲一個僅將字符串轉換爲XMLDocument的附加函數。

問題: C#或Visual Studio如何幫助我創建某種模板或某種模板來管理它。我面臨的問題是將會有超過100個函數,並且接口將由不同的程序員管理,這些程序員在C#中並不都很好。因此,他們會忘記在三個不同類別/來源中編寫「相同」代碼:(

有人知道如何解決問題Type1與Type2(忘記關於Type 3)Type1和2實際上是相同的來源,除了: 1.類名稱是不同 2.在類型1每個函數都有一個額外SoapRpcMethod屬性

對於我現在通過使用預處理器(我自己的程序),其從1個源產生3種源,然後調用C#解決這個編譯器,但它很笨拙,並且很難理解某人對C#編程不太熟悉,因爲Web服務用於訪問Oracle服務器,因此c#web服務只是一個外觀,並且Web服務中沒有應用程序邏輯,只能調用PL/S QL程序等C#Web服務由Oracle程序員不熟悉Windows/C#託管...

TIA Matjaz

回答

0

我認爲你正在試圖解決的問題是代碼的重複 - 你應該檢查出Template design pattern。這樣,人們不會'忘記'編寫他們應該使用的冗餘代碼。

+0

感謝您的回答,但問題是他們必須在三個不同的類中編寫一行代碼。我已經使用了所有可以使用的模式,並使用1行預先功能生活。 但是這行必須寫入三個不同的類,它們爲三種不同類型的客戶端產生三種不同的web服務。除了每個類中的函數屬性之外,所有內容幾乎都是相同的 – Matjaz 2013-04-29 10:17:00

相關問題