2014-10-27 86 views
0

我有一個方法乾淨的方法來從通用轉換爲具體類型

public Dto Convert<T>(T source) 
{ 
    //todo here? 
} 

,我需要調用從那裏基於T下面的方法,將我必須做TypeOf運算和switch語句(試圖避免那)?

public Dto Convert(Contact source) {} 
public Dto Convert(Org source) {} 
etc... 

回答

4

你可以使用dynamic

public Dto Convert<T>(T source) 
{ 
    var resut = (Dto)Convert((dynamic)source); 
} 

它會因實際source類型在運行時執行方法的選擇。如果沒有可用的名稱的合適方法,也會失敗。

但是你的設計看起來總是出問題。你確定你沒有試圖解決XY problem

+0

我想我有點落入XY問題。必須查看它:)我已經開始使用動態現在,這似乎是伎倆。 – MoXplod 2014-10-27 22:00:43

相關問題