Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC-抽象从实体(或模型)到视图模型的转换_C#_Asp.net Mvc_Abstraction - Fatal编程技术网

C# MVC-抽象从实体(或模型)到视图模型的转换

C# MVC-抽象从实体(或模型)到视图模型的转换,c#,asp.net-mvc,abstraction,C#,Asp.net Mvc,Abstraction,我的目标是尽可能多地抽象,所以我想到了一些从模型实体转换为viewmodel的通用方法 我想要这样的东西: IEntityToModelMapper mapper; mapper.Convert<MyModel>().Map<MyViewModel>(); 甚至: GenericViewModel model = _mapper.Convert<MyModel>(); 当GenericViewModel是所有ViewModel的基类时,但在本例中,我在强

我的目标是尽可能多地抽象,所以我想到了一些从模型实体转换为viewmodel的通用方法

我想要这样的东西:

IEntityToModelMapper mapper;
mapper.Convert<MyModel>().Map<MyViewModel>();
甚至:

 GenericViewModel model = _mapper.Convert<MyModel>();
当GenericViewModel是所有ViewModel的基类时,但在本例中,我在强制转换对象时会遇到问题。也许是界面

我的只是尝试。您将如何实现这一点


谢谢

您是想使用自己的库还是使用现有库?Automapper对我来说工作得很好:我想在具体类中使用Automapper,但我希望在控制器中有一个抽象,以便为每个应该转换为ViewModel的实体都有一个通用模式。我希望我的解释是清楚的…ViewModels与EntityModels不同,它有一些公共属性,例如主键字段,因此您可以创建一个基础模型。在我看来,创建一个通用VM并没有什么意义。考虑它,通用ViewModel不是正确的方法,而是一种带有接口的抽象。例如,我想到了Ninject。它有一个名为IKernel的接口,当您想将一个接口绑定到一个具体的类时,可以调用类似于:IKernel kernel。。。kernel.Bind.To;