如何配置Automapper注入Ninject 2.0?

2024-01-24

Structure Map 和 Windsor 有配置示例:http://www.cprieto.com/index.php/2009/08/20/using-automapper-with-castle-windsor/ http://www.cprieto.com/index.php/2009/08/20/using-automapper-with-castle-windsor/

但我还没有找到 Ninject 的任何内容。

你知道如何将这些映射转换为 Ninject 吗?


这真的很简单,只需加载这个模块:

public class AutoMapperModule : NinjectModule
{
    public override void Load()
    {
        Bind<ITypeMapFactory>().To<TypeMapFactory>();
        foreach (var mapper in MapperRegistry.AllMappers())
            Bind<IObjectMapper>().ToConstant(mapper);
        Bind<Configuration>().ToSelf().InSingletonScope()
            .WithConstructorArgument("mappers",
                ctx => ctx.Kernel.GetAll<IObjectMapper>());
        Bind<IConfiguration>().ToMethod(ctx => ctx.Kernel.Get<Configuration>());
        Bind<IConfigurationProvider>().ToMethod(ctx => 
            ctx.Kernel.Get<Configuration>());
        Bind<IMappingEngine>().To<MappingEngine>();
    }
}

对此有几点需要注意:

  • 而不是仅仅提供MapperRegistry.AllMappers作为构造函数参数Configuration,它实际上束缚了每个人IObjectMapper然后使用内核本身来获取构造函数参数WithConstructorArgument捆绑。这样做的原因是为了让您可以加载自己的IObjectMapper如果您决定要编写自己的自定义映射器,请绑定到内核。

  • 自我约束的原因Configuration然后方法绑定IConfiguration and IConfigurationProvider与 Windsor 不同的是,Ninject 不提供任何一流的支持来将多个接口绑定到单个目标范围,因此出现了这个 hack。

这就是全部内容了。编写容器类并依赖于IConfiguration(如果您想创建新地图)和/或IMappingEngine(实际进行映射),Ninject 将毫无问题地注入它们。

如果您想要超松耦合并在自己的类中定义每个映射,那么您可能需要看看约定扩展 https://github.com/ninject/ninject.extensions.conventions对于 Ninject,它可以进行类似于 Windsor 的装配扫描FromAssembly。这也可以加载任何自定义IObjectMapper您可以在单独的库中定义的类。

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

如何配置Automapper注入Ninject 2.0? 的相关文章

  • C# 可以扩展数组吗?

    我习惯向 IEnumerable 等外部类添加方法 但是我们可以在 C 中扩展数组吗 我计划向数组添加一个方法 将其转换为 IEnumerable 即使它是多维的 不相关如何在 C 中扩展数组 https stackoverflow com
  • WinApi:获取 COM 表单的控件名称

    我想用 Net 框架替换我当前的 UI 自动化工具 QTP 我需要测试 VB6 COM 应用程序 框架的基础之一是使用表单名称 到目前为止 我未能找到使用 Win API 获取这些数据的方法 该解决方案只有一个约束 即该解决方案必须依赖 N
  • log4net 仅在调用 XmlConfigurator.Configure() 时起作用

    我明白那个this https stackoverflow com questions 445976 log4net config in external file does not work 1479343 1479343 questio
  • 为什么 IsAssignableFrom() 不适用于 int 和 double?

    这是错误的 typeof double IsAssignableFrom typeof int 这是错误的 typeof int IsAssignableFrom typeof double 但这有效 double a 1 0 int b
  • 计算按月分隔的两个日期之间的天数

    我需要计算两个日期之间的天数 DateTime 但有一个转折 我想知道这两天跨越的每个月有多少天 两个人有简单的方法吗 Example 我的开始日期是 30 03 2011 结束日期是 05 04 2011 那么结果应该是这样的 var r
  • 正则表达式不等于字符串

    我用正则表达式用头撞墙 我正在尝试定义一个表达式 该表达式完全排除此文本 System 不区分大小写 但可以包含 系统 这个词提供的不仅仅是这个 例子 系统 无效 系统 无效 系统 无效 系统 无效 asd 系统 有效 asd 系统 asd
  • 分层架构中的异常处理

    我们正在分层设计中重构 当然还有重新设计 我们的服务 我们有服务操作层 BLL 网络抽象层 gt 处理网络代理 数据抽象层 但我们对我们的异常处理策略有点困惑 我们不想向外界透露太多 BLL 的信息 从其他层到bll就可以了 我们不想让 t
  • Confuser .NET 混淆器。安全吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我目前正在开发一个应用程序 其中阻止用户反编译代码非常重要 现在 我意识到 如果由经验丰富的程序员执行 大多数 exe 都是可反编译的
  • StreamReader,C#,peek

    我有一个 StreamReader 它偶尔会检查它是否有更多内容可以从简单的文本文件中读取 它使用 peek 属性 问题是 当我使用 peek 时 位置发生了变化 尽管不应该发生 FileStream m fsReader new File
  • C# Julian 日期解析器

    我在电子表格中有一个单元格 它是 Excel 中的日期对象 但当它来自 C1 的 xls 类时 它会变成双精度型 类似于 2009 年 1 月 7 日的 39820 0 我读到这是儒略日期格式 有人可以告诉我如何在 C 中将其解析回 Dat
  • 如何在 C# 中以编程方式创建柔和的颜色?

    根据所需的颜色数量均匀分布地生成它们 如果指定的计数为 8 则看起来像这样 List
  • Java有没有类似微软CHESS的工具?

    是否有类似于 Microsoft 的现有 Java 工具CHESS http research microsoft com chess 或者 CHESS 源代码是否开放 以便我可以尝试将其转换为 Java 谷歌的织线工 http code
  • 如何在 VS2017/2015 中打开 .xproj 文件

    我有一个带有扩展名的 NET core 项目 xproj 当我在VS 2017中打开项目时 项目文件 xproj migrated to csproj 如何打开 xproj 文件 Visual Studio 2017 2015 我需要安装任
  • C# - 方法必须有返回类型

    我在调用 C 中的方法时遇到问题 不断收到消息 方法 计算 必须有返回类型 using System Diagnostics namespace WindowsFormsApplication1 public partial class F
  • 使用实体框架重叠约会

    我将 asp net mvc 与实体框架一起使用 我有一个包含 startat 字段 endat 字段和 roomid 字段 称为 SpaceConfigurationId 的约会列表 并且希望查找给定房间已重复预订的约会列表 可以假设 e
  • 如何等待远程 .NET 调试器连接

    今天我遇到了一个问题 我需要远程调试程序 该程序是从另一个系统启动的 所以我真的没有机会在命令行上与它交互 不过我可以很容易地改变它的来源 我需要做的是让程序正常启动 然后等待我用调试器附加到它 我想不出一个让我快乐的方法 我确实发现了这个
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org

随机推荐

  • 验证 cypress 的加载指示器显示

    我有以下规格 context Contact update gt it only Can update contact gt const address new address 123 const cardId c2card 38AF429
  • 如何在实体框架中将 Int 属性替换为 Enum?

    我有一个实体类 它的属性具有数据类型 Int 的基础数据库列 但实际上我希望该属性是一个枚举 有什么方法可以指定该属性返回一个枚举吗 间接地 比如so http weblogs asp net alexeyzakharov archive
  • scrypt 输出的最大长度是多少?

    我想存储一个scrypt http en wikipedia org wiki Scrypt 数据库中的散列密码 我可以预期的最大长度是多少 根据https github com wg scrypt https github com wg
  • 为什么我们需要添加

    为什么我们需要在 Facebook 应用程序中添加这对标签 这对标签有什么用呢 我创建了一个使用 apprequest 的应用程序 即使我没有在脚本前面添加这些标签 它也能正常工作 所以我真的很想知道为什么我们需要添加它们 谢谢 它是 Fa
  • 什么是影根

    在 Google Chrome 的开发者工具中 我看到 shadow root就在下面标签 它有什么作用以及用途是什么 我在 Firefox 和 IE 中都没有看到它 仅在 Chrome 中 这是一个特殊功能吗 如果我打开它 它会显示 an
  • Logback 依赖性阻止 SBT 离线运行

    这是一个细化的上一个问题 https stackoverflow com questions 23014492 sbt 0 13 1 offline更密切地归因于问题 我正在尝试确认我可以离线运行我的 SBT 项目 我可以 除非 logba
  • python 2.7中的karger最小切割算法

    这是我的 karger min cut 算法的代码 据我所知 我实现的算法是正确的 但我没有得到正确的答案 如果有人可以检查出了什么问题 我将不胜感激 import random from random import randint loa
  • Plaid 快速入门 - 无法获取 link_token (Python)

    按照以下说明进行操作后https dashboard plaid com overview sandbox https dashboard plaid com overview sandbox 我得到了以下消息在前端 https i sta
  • 如何对值为数组引用的 Perl 哈希进行排序?

    嘿 我只是想知道是否有一个很酷的 单行 可以对保存数组引用的哈希进行排序 所以我的哈希中有一堆键 值 例如 DataBase key value 但是我想按以下方式对哈希进行排序array 0 元素 然后循环遍历它们 我一开始是这样的 fo
  • C++ 模板函数参数推导和函数解析

    今天我只想提出一个关于C 模板函数参数推导和C 11中模板函数重载解析的问题 我使用的是vs2010 sp1 我定义了两个模板函数 如下所示 功能 1 template
  • 在 Angular 应用程序中处理过滤值的更优雅的方式

    我在 Angular 2 应用程序中多次重新加载表格显示中的数据时遇到了一些问题 我认为主要问题与以下事实有关 在初始组件加载时 我将数据作为网络请求发送给一系列过滤器 基本上 我们利用 Mongo Mongoose 功能 让我们在 pos
  • APN 重复令牌

    我们有一个推送通知服务器 它保存多个不同应用程序的数据 设备令牌 由于 Apple 希望阻止人们使用 UDID 作为标识符 我正在考虑更改此服务器 以便它不再依赖 UDID 来识别设备 据我所知 APN 返回的令牌不是全局唯一的 而是每个设
  • 我如何编写一个 mt4 指标,在前 6 小时的每小时蜡烛图上绘制矩形和水平线

    我是 mql4 编码的新手 我想知道如何根据下图编写一个执行以下操作的指标 在当天的小时图上绘制一个矩形 覆盖前 6 小时的最高和最低价格点 蜡烛 沿着找到的最高点和最低点画两条水平线 1 请注意 1 和 2 应严格基于每小时时间段 并且不
  • 如何在 Spring Data REST 中禁止 PUT 而允许 POST 和 PATCH?

    是否可以在 Spring Data REST 中完全禁止对存储库进行 PUT 同时仍然可以对集合进行 POST 并对项目进行 PATCH 这背后的基本原理是 PUT 通常允许替换语义 但在我们的例子中 资源只能通过集合上的 POST 创建
  • 您可以使用 TortoiseGit 与索引/暂存区域进行交互吗?

    我的任务是向我的同事做关于 Git 的演示 他们几乎都是习惯使用 TortoiseCVS 的 Windows 用户 我已经使用 Git 大约一年了 但我几乎只使用 Unix 命令行界面 所以我一直在尝试熟悉 Windows GUI Git
  • 如何解析 React Js 中的最小和最大日期输入?

    我创建了一个函数 该函数返回当前日期的减法或加法 并将结果设置为日期输入的最小值或最大值 我的职能 SubDate subDay gt let tgDate new Date tgDate setDate tgDate getDate su
  • 如何获取流星智能包中的当前目录

    我正在为要在 Atmosphere 上发布的流星构建一个包 我需要获取该包安装的当前目录 我努力了process cwd 在包中包含的文件中 但它获取我的应用程序的当前目录 该软件包已安装并正常工作 似乎该软件包与应用程序在同一进程中运行
  • Eclipse LogCat - 不工作

    这是有史以来最令人沮丧的事情 LogCat 不断停用 断开连接 运行 eclipse 后 LogCat 记录第一次运行 之后 它变为空白 我必须重新启动 Eclipse 才能使其再次运行 然后同样的事情再次发生 这有什么关系呢 它曾经工作得
  • 如何在 Sublime 中将“一行 html”格式化为漂亮的文档? [复制]

    这个问题在这里已经有答案了 我有一个 html 源文件 仅包含一行 如下所示 testwow 我想将其格式化如下 test wow 我使用了命令 编辑 gt 行 gt 重新缩进 但它不起作用 在 Sublime Text 中试试这个 突出显
  • 如何配置Automapper注入Ninject 2.0?

    Structure Map 和 Windsor 有配置示例 http www cprieto com index php 2009 08 20 using automapper with castle windsor http www cp