我在我的項目中使用Windows通信服務(WCF)。使用WCF時,函數重載規則?
在我的項目,
我寫的功能,象下面這樣:
GetUserNameByUserId(int userId);
GetProductInformationByProductId(int productId);
但這個命名已經被節日的臨近越來越複雜的一天。
比如我有5個參數傳遞給函數,在這種情況下,函數名會像打擊:
GetStackOverFlowByStackByOverByFlowByIdByStackOverFlow(string stack, string over, string flow, int id, string stackOverFlow);
,並假設我想用2個參數,如打擊:
GetStackOverFlowByIdByStackOverFlow(int id, string stackOverFlow);
我想使用函數重載象下面這樣:
public void abc(int i)
{
System.Console.WriteLine("abc" + i);
}
public void abc(string i)
{
System.Console.WriteLine("abc" + i);
}
public void abc(string i,int j)
{
System.Console.WriteLine("abc" + i + j);
}
也就是說,我想寫下面的功能:
GetStackOverFlow(int id);
GetStackOverFlow(int id, string name);
GetStackOverFlow(int id, string name, string StackOver);
.
.
是不是? 有沒有什麼方法? 還是我做對了?
我研究並發現這一點: Function Overloading in WCF
public interface IMyService
{
[OperationContract(Name = "GetStringWithParam")]
string GetString(DateTime date);
[OperationContract(Name = "GetStringWithoutParam")]
string GetString();
}
,他說
但我不喜歡它,因爲它有時會導致混亂。
還有其他方法嗎? 謝謝。
爲什麼你要編寫函數'GetStackOverFlow(id,name)'來過濾ID和名稱?我假設「ID」只會返回一個對象。你還能過濾多少? – Andreas
好方法,但不認爲只有id有時一個Id可以有多個行,所以我不得不使用更多的過濾器.. –