C# 使用泛型扩展方法将实体映射到视图模型
我正在尝试创建一个通用扩展方法,它可以在任何类上工作,并将其数据映射到提供的另一个类 我想达到的目标如下 我有一个类User和另一个类UserVMC# 使用泛型扩展方法将实体映射到视图模型,c#,automapper,C#,Automapper,我正在尝试创建一个通用扩展方法,它可以在任何类上工作,并将其数据映射到提供的另一个类 我想达到的目标如下 我有一个类User和另一个类UserVM User dbUser = new User(); UserVM userMapped = dbUser.MapToViewlModel<UserVM>(); User dbUser=new User(); UserVM userMapped=dbUser.MapToViewlModel(); 在方法的内部实现中,我将使用AutoMa
User dbUser = new User();
UserVM userMapped = dbUser.MapToViewlModel<UserVM>();
User dbUser=new User();
UserVM userMapped=dbUser.MapToViewlModel();
在方法的内部实现中,我将使用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);
}
}
公共静态类DataMapperExtensions
{
公共静态M MapToViewModel(此T输入)
T:在哪里上课
M:在哪里上课
{
返回Mapper.Map(输入);
}
}
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其中T:class
{
公共静态M MapToViewModel(此T输入)
M:在哪里上课
{
返回Mapper.Map(输入);
}
}
DataMapperExtensions的下划线表示“扩展方法必须定义为非泛型静态类”
我所要求的可能吗?
请提前通知我并表示感谢。您需要使用
public static M MapToViewModel<T,M>(this T input)
publicstaticmMaptoViewModel(此T输入)
并且用法类似于UserVM mappedUser=dbUser.MapToViewModel()?