AutoMapper与ValueInjecter
每次我在StackOverflow上寻找AutoMapper时,我都在阅读有关ValueInjecter的内容。
有人能告诉我它们之间的优缺点(性能,功能,API使用,可扩展性,测试)吗?
没有找到相关结果
已邀请:
4 个回复
感秆暴壳
像:
ValueInjecter类似于Mozilla的插件,你可以创建ValueInjections并使用它们 有内置注射用于扁平化,不褪色,以及一些旨在被遗传的注射剂 并且它以方式类型的方式工作更多,您不必指定所有属性1对1,而是执行以下操作: 获取源名称以“Id”结尾的所有int属性,转换值并将每个属性设置为源对象中具有相同名称但没有Id后缀的属性,并且它的类型是从Entity继承的,类似的东西 所以有一个明显的区别,ValueInjecter甚至用于平整和不平整的窗体中,这就是它的灵活性 (从对象映射到表单控件并返回) 自动映像,在Windows窗体中不可用,没有任何缺陷,但它有很好的东西,如集合映射,所以如果你需要它与ValueInjecter你只需做类似的事情:
您还可以使用ValueInjecter从匿名和动态对象进行映射 不同之处: automapper为每个映射可能性创建配置CreateMap() valueinjecter从任何对象注入任何对象(也有从对象注入到valuetype的情况) automapper已经扁平化了它,并且仅用于简单类型或相同类型,并且它没有不平整 只有在你需要的时候,才能使用value3ѭ 如果你想从
到
,你继承FlatLoopValueInjection并指定它 默认情况下,automapper会映射具有相同名称的属性,其余的则必须逐个指定,并执行Prop1.Ignore(),Prop2.Ignore()等操作。 valueinjecter有一个默认的注入.InjectFrom(),用于执行具有相同名称和类型的属性;对于其他一切,您使用单独的映射逻辑/规则创建自定义值注入,更像是方面,例如从Type Foo的所有道具到所有类型Bar的道具
梦砍废么
鲁釜头
对于我的绝大多数注射需求而言,这就是所有需要知道的。它不可能比这更简单和优雅。
磁辫覆氓
ViewModel(我可以用验证器装饰):
ViewController:
在我看来,它并没有那么简单? (所以这引出了一个问题,我遇到的模式是错的(似乎很多其他人都这么做),它不被认为对AutoMapper有价值吗?) 但是,如果这个模式被解释,是你想要使用的模式,那么我的投票就是一个国家英里的价值。