C# 使用泛型扩展方法将实体映射到视图模型

C# 使用泛型扩展方法将实体映射到视图模型,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和另一个类UserVM

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()?