我正在尝试创建一个适用于任何类的通用扩展方法,并将其数据映射到提供的另一个类。
我要实现的目标如下
我有一个User类,另一个是UserVM
User dbUser = new User();
UserVM userMapped = dbUser.MapToViewlModel<UserVM>();
从方法的内部实现中,我将使用AutoMapper Mapper.Map()
这是我的代码
public static class DataMapperExtensions
{
public static M MapToViewModel<M>(this T input)
where T : class
where M: class
{
return Mapper.Map<T, M>(input);
}
}
T永远不会编译,我什至尝试了以下代码:
public static class DataMapperExtensions<T> where T: class
{
public static M MapToViewModel<M>(this T input)
where M: class
{
return Mapper.Map<T, M>(input);
}
}
DataMapperExtensions带有下划线,表示“扩展方法必须定义为非通用静态类”。
我要的甚至是可能吗? 请让我知道并提前感谢。
答案 0 :(得分:1)
您需要使用
public static M MapToViewModel<T,M>(this T input)