AutoMapper 与 ValueInjecter [关闭]

2023-11-27

每次我都在寻找自动映射器StackOverflow 上的内容,我正在读一些关于价值注入器.

有人可以告诉我它们之间的优缺点(性能、功能、API 使用、可扩展性、测试)吗?


作为创造者价值注入器,我可以告诉你,我这么做是因为我想要一些东西简单且非常灵活

我真的不喜欢写太多或写很多monkey code like:

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

ValueInjecter 是个东西就像 Mozilla 及其插件一样,您创建 ValueInjections 并使用它们

有用于扁平化、反扁平化的内置注入,以及一些旨在继承的注入

它更适用于方式的方面类型,您不必一对一地指定所有属性,而是执行以下操作:

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

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

(从对象到表单控件的映射以及返回)

Automapper,在 Windows 窗体中不可用,没有展开,但它有像集合映射这样的好东西,所以如果你需要它与 ValueInjecter 你只需做类似的事情:

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

您还可以使用 ValueInjecter 进行映射匿名的 and dynamic objects

差异:

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

  • valueinjecter 从一个对象注入到任何对象(也有从对象注入到值类型的情况)

  • automapper 内置了扁平化功能,并且仅适用于简单类型或相同类型,并且它没有取消扁平化功能

  • valueinjecter 仅当您需要时才这样做target.InjectFrom<FlatLoopValueInjection>(source); also <UnflatLoopValueInjection>如果你想从Foo.Bar.Name of type String to FooBarName of type Class1您继承 FlatLoopValueInjection 并指定它

  • automapper 默认映射具有相同名称的属性,其余的你必须一一指定,并执行诸如 Prop1.Ignore()、Prop2.Ignore() 等操作。

  • valueinjecter 有一个默认注入 .InjectFrom() ,它执行具有相同名称和类型的属性;对于其他一切,您可以使用单独的映射逻辑/规则创建自定义值注入,更像是方面,例如从 Foo 类型的所有 props 到 Bar 类型的所有 props

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AutoMapper 与 ValueInjecter [关闭] 的相关文章

  • Environment.CurrentDirectory 与 System.IO.Directory.GetCurrentDirectory

    我正在编写一个 Net WinForms 并不断在调试和发布配置之间切换 并且有一些文件我需要任一配置才能访问 我想做的是将文件放在 BIN 文件夹中的公共目录中 这样它看起来像这样 MyProject Bin CommonFiles My
  • 当事件button.click发生时,如何获取按钮名称/标签?

    我以编程方式制作按钮并将它们添加到堆栈面板中 以便每次用户导航到页面时按钮都会发生变化 我正在尝试做这样的事情 当我单击创建的按钮时 它将获取按钮的标签并转到正确的页面 但是 我无法使用 RoutedEventHandler 访问按钮元素
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • 如何使用 Regex.Replace 从字符串中删除数字?

    我需要使用Regex Replace从字符串中删除所有数字和符号 输入示例 123 abcd33输出示例 abcd 请尝试以下操作 var output Regex Replace input d string Empty The d标识符
  • 如何使用 x64 运行 cl?

    我遇到了和这里同样的问题致命错误 C1034 windows h 未设置包含路径 https stackoverflow com questions 931652 fatal error c1034 windows h no include
  • 在 .NET MAUI 中实现 TouchTracking

    我一直致力于将我们的应用程序从 Xamarin Forms 迁移到 NET MAUI 我们的应用程序几乎没有绘图功能 用户可以用手指进行绘图 我们用了TouchTrackingXamarin Forms 中的 nuget 包 但与 NET
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • 不可变类与结构

    以下是类与 C 中的结构的唯一区别 如果我错了 请纠正我 类变量是引用 而结构变量是值 因此在赋值和参数传递中复制结构的整个值 类变量是存储在堆栈上的指针 指向堆上的内存 而结构变量作为值存储在堆上 假设我有一个不可变的结构 该结构的字段一
  • 在 C 中使用枚举而不是 #defines 作为编译时常量是否合理?

    在 C 工作了一段时间后 我将回到 C 开发领域 我已经意识到 在不必要的时候应该避免使用宏 以便让编译器在编译时为您做更多的工作 因此 对于常量值 在 C 中我将使用静态 const 变量或 C 11 枚举类来实现良好的作用域 在 C 中
  • memcpy/memmove 到联合成员,这是否设置“活动”成员?

    重要说明 一些评论者似乎认为我是从工会抄袭的 仔细看memcpy 它从普通旧地址复制uint32 t 它不包含在联合中 另外 我正在复制 通过memcpy 到工会的特定成员 u a16 or u x in a union 不直接到整个联盟本
  • 将二变量 std::function 转换为单变量 std::function

    我有一个函数 它获取两个值 x 和 y 并返回结果 std function lt double double double gt mult double x double y return x y 现在我想得到一个常量 y 的单变量函数
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • C++ 对象用 new 创建,用 free() 销毁;这有多糟糕?

    我正在修改一个相对较大的 C 程序 不幸的是 并不总是清楚我之前的人使用的是 C 还是 C 语法 这是在一所大学的电气工程系 我们 EE 总是想用 C 来做所有事情 不幸的是 在这种情况下 人们实际上可以逃脱惩罚 但是 如果有人创建一个对象
  • 为什么 0.5 mod 0.1 在不同的编程语言中结果不同?

    我有一个关于模数的问题 模运算求一个数除以另一个数的余数 我原本期望 0 5 0 1 0 的结果 但是当我在 PHP 或 net 中运行它时 我得到 0 1 我运行的 php 代码是 var dump fmod 0 5 0 1 在 net中
  • 如何解压 msgpack 文件?

    我正在将 msgpack 编码的数据写入文件 在编写时 我只是使用 C API 的 fbuffer 如 我为示例删除了所有错误处理 FILE fp fopen filename ab msgpack packer pk msgpack pa
  • C++:二叉树所有节点值的总和

    我正在准备面试 我被一个二叉树问题困住了 我们如何计算二叉树所有节点中存在的值的总和 优雅的递归解决方案 伪代码 def sum node if node NULL return 0 return node gt value sum nod
  • 在 Win32 控制台应用程序中设置光标位置

    如何在 Win32 控制台应用程序中设置光标位置 最好 我想避免制作句柄并使用 Windows 控制台功能 我花了整个早上沿着那条黑暗的小巷跑 它产生的问题比它解决的问题还要多 我似乎记得当我在大学时使用 stdio 做这件事相对简单 但我
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person
  • MySqlConnectionStringBuilder - 使用证书连接

    我正在尝试连接到 Google Cloud Sql 这是一个 MySql 解决方案 我能够使用 MySql Workbench 进行连接 我如何使用 C 连接MySqlConnectionStringBuilder 我找不到提供这三个证书的

随机推荐

  • 如何从结构元素的嵌套数组创建 Spark DataFrame?

    我已将 JSON 文件读入 Spark 该文件具有以下结构 scala gt tweetBlob printSchema root related struct nullable true next struct nullable true
  • 在 ASP.NET Core 2 中获取用户 ID

    我正在尝试获取 ASP NET Core 2 1 MVC 项目中的用户 ID 但是 我只能收到电子邮件 我几乎肯定必须有一个 1 2 行的方法来获取它 在 ASP NET MVC 成员资格中 它只是 varloggingInUserId U
  • 使 JList 中的按钮可点击

    我不敢相信这行不通 我有一个 JList 我已将其渲染器设置如下 基本上RankingPanel是一个带有两个标签和一个按钮的 JPanel topAchieverList new JList topAchieverList setCell
  • 在 Python 中查找每一行的最大值

    如何在Python中找到每一行的最大值并将其存储在NumPy数组或Pandas DataFrame中并将其存储在NumPy数组中 即下面的输出 0 511474 0 488526 0 468783 0 531217 0 35111 0 64
  • java.io.FileNotFoundException:打开失败:EACCES(权限被拒绝)

    当我尝试将位图存储到存储中时出现此错误 File path new File Environment getExternalStoragePublicDirectory Environment DIRECTORY PICTURES pict
  • 如何让 tslint 监视特定文件夹中的更改?

    我正在使用 webpack 2 它会告诉我我的打字稿代码是否存在编译问题 但是 我还没有找到一种方法来通过它运行 tslint 并让它在 webpack 在开发服务器模式下运行时检测到的每个更改中运行 我尝试过tslint 加载程序工作 但
  • 在 JBoss EAP 7 中配置 Http 标头

    您知道是否有标准方法来配置 JBoss EAP 7 发送到客户端的 Http 标头 我主要感兴趣的是能够配置以下内容 X XSS 保护 X 框架选项 严格的运输安全 内容安全策略 X 内容类型选项 我在互联网上找到了这个链接 https b
  • 使用 CSS3 模糊滤镜时图像周围出现白色模糊?

    今天我想重新设计我的网站并以不同的方式处理它 我并没有专注于排版 而是添加了大图像和小文本 我简单地做了 html background url img background png no repeat center center fixe
  • iOS swift 将 mp3 转换为 aac

    我正在转换一个mp3 to m4a在 Swift 中 代码基于this 当我生成 PCM 文件时它起作用 当我将导出格式更改为 m4a 时 它会生成一个文件 但无法播放 为什么会腐败 这是到目前为止的代码 import AVFoundati
  • Node.js 在 Windows 上的表现是否很差,对于基本 I/O 肯定不会比 apache 慢

    问题 我得到的结果合理吗 有什么东西可以对减少每秒请求数产生如此大的影响吗 Edit 我的一个朋友刚刚在 Linux 上对相同的应用程序进行了基准测试 平均 r s 约为 7000 Edit 2 我检查了 Node exe 的 CPU 使用
  • Xcode 4 - 构建输出目录

    我在 Xcode4 beta 5 中设置 定位输出文件时遇到问题 它们被放置在某处 Library Developer ugly path 我什至无法在我的产品上选择 在查找器中显示 对于简单的 C 项目 Foundation 工具甚至 C
  • jQuery 文本框光标到文本末尾?

    我正在尝试使用 jQuery 在用户点击 enter 后基本上替换文本框中文本末尾的光标 我的 输入 部分正在工作 但我不知道 输入部分之后 如何 我可以让光标返回到文本框中输入的文本的末尾 即此刻 当用户按 Enter 键时 光标转到新行
  • 使用 CanCan 授权命名空间和嵌套控制器

    我在让 cancan 授权我的新路线设置时遇到了一些麻烦 namespace api do namespace v1 do resources users do resources user songs resources friendsh
  • 如何将输入值获取到 Angular 的 $scope 中?

    我是 Angular 的新手 我正在尝试做一些非常基本的事情 这是视图的一部分 所有角度文件都添加到其他地方 div div
  • 如何将 bash 命令的输出存储在变量中? [复制]

    这个问题在这里已经有答案了 我正在尝试编写一个简单的脚本来终止进程 我已经读过使用 bash 和正则表达式在一行中查找并终止进程所以请不要将我重定向到此 这是我的代码 LINE ps aux grep 1 PROCESS LINE awk
  • 用于在自连接表中的嵌套

    Please help me solve my big problem in my on line shopping project i created a dynamic Category List with Infinite Level
  • 搜索满足 Column1 <= X <= Column2 的行的 SQL 查询非常慢

    我正在使用 MySQL 数据库 并有下表 CREATE TABLE SomeTable PrimaryKeyCol BIGINT 20 NOT NULL A BIGINT 20 NOT NULL FirstX INT 11 NOT NULL
  • 所有事件驱动框架都应该是单线程的吗?

    http weblogs java net blog kgh archive 2004 10 multithreaded t html认为多线程 GUI 框架是一个失败的梦想 非 GUI 框架怎么样 这个经验法则是否适用于所有事件驱动框架
  • 应用程序启动器图标更改为 Oreo 上的默认图标

    我创建了一个带有自己的启动器图标的 Android 应用程序 它与牛轧糖配合得很好 但在 Oreo 中 我的图标被默认的 Android 图标取代 我已经定义了ic launcher png and ic launcher round pn
  • AutoMapper 与 ValueInjecter [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 Locked 这个问题及其