2014-10-27 40 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

相关问题