栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

AutoMapper与ValueInjecter [关闭]

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AutoMapper与ValueInjecter [关闭]

作为ValueInjecter的创建者,我可以告诉你我这样做是因为我想要
简单,非常灵活的* 东西 *

我真的不喜欢写太多或写很多

monkey pre
类似的东西:

Prop1.Ignore, Prop2.Ignore etc.CreateMap<Foo,Bar>(); CreateMap<Tomato, Potato>(); etc.

ValueInjecter 类似于mozilla,带有其插件, 您可以创建ValueInjections并使用它们

有内置的用于扁平化,非扁平化的注入,还有一些旨在继承

并且它 以方面类型的方式 工作得更多,您不必指定所有属性为1对1,而是可以执行以下操作:

从名称中以“
Id”结尾的源中获取所有int属性,转换值并将每个属性设置为源对象中具有相同名称的属性(不带Id后缀),并且其类型从Entity继承,诸如此类

所以一个明显的区别是,ValueInjecter即使在具有展平和展平的Windows窗体中也可以使用,这就是它的灵活性

(从对象映射到窗体控件,然后再返回)

Automapper,在Windows窗体中不可用,没有展开,但是它具有诸如集合映射之类的好东西,因此,如果需要ValueInjecter来使用它,则可以执行以下操作:

foos.Select(o => new Bar().InjectFrom(o));

您还可以使用ValueInjecter来映射 匿名动态 对象

差异:

  • 自动映射器为每种映射可能性创建配置CreateMap()

  • 从任何对象到任何对象的valueinjecter注入(在某些情况下,从对象到valuetype的注入)

  • automapper已构建扁平化,并且仅用于简单类型或相同类型,并且不具有扁平化

  • valueinjecter只有当你需要它,你做的

    target.InjectFrom<FlatLoopValueInjection>(source); also <UnflatLoopValueInjection>
    ,如果你想从
    Foo.Bar.Name of type String
    FooBarName of type Class1
    你继承FlatLoopValueInjection并指定此

  • 默认情况下,automapper映射具有相同名称的属性,对于其余属性,您必须一个一个地指定,并执行诸如Prop1.Ignore(),Prop2.Ignore()等操作。

  • valueinjecter具有默认的注入.InjectFrom(),其名称和类型相同;除此以外,您还可以使用单独的映射逻辑/规则创建自定义值注入,更像是方面,例如 从Foo类型的所有道具到Bar类型的所有道具



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506783.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号