我有基於被傳入的用戶類型的返回數據的WCF服務此方法的定義是:WCF服務內部方法重載
[OperationContract]
public Element GetElement(User user, int id)
我的問題是,有許多方法在服務中,並且每一個都需要一個用戶,並且包含一個交換機來返回用戶類型的相關信息。即
switch(user.GetType())
{
case typeOf(UserA):
break;
case typeOf(UserB):
break;
case typeOf(UserC):
break;
}
有沒有什麼辦法能夠實現以下結構,並自動WCF引導到正確的方法?可能是由某種行爲?
[OperationContract]
public Element GetElement(User user, int id)
{
//DO NOTHING
}
public Element GetElement(UserA user, int id)
{
//Process for typeof UserA
}
public Element GetElement(UserB user, int id)
{
//Process for typeof UserB
}
public Element GetElement(UserC user, int id)
{
//Process for typeof UserC
}
正確的用戶方法如果'User'是一個基類和'UserA'是一個子類,你就不能這樣做: 'user.ProcessGet(id)'或其他。 –
我可以,也許是最好的解決方案,只是想知道是否有任何方式來實現它與WCF。 –
您正在尋找的圖案稱爲Double Dispatch。 – Aron