问题标签 [dryioc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nancy - DryIoc - 南希引导者?
我正在尝试为 DryIoc(v2.0 预览版)创建一个 nancy 引导程序。一般来说,大多数事情看起来都很简单,但是 DryIoc 似乎并不明显支持 Nancy 所依赖的引导程序之一。
当面对具有两个“相同长度”构造函数(即相同数量的参数,但它们属于不同类型)的类型时,内置的 tinyioc 容器将解析它具有完整类型注册集的那个。
运行我的引导程序时,在该RegisterTypes
方法中引发异常:
Additional information: Unspecified how to select single constructor for implementation type Nancy.ViewEngines.FileSystemViewLocationProvider with 2 public constructors.
在我的 DryIoc 实现中我需要做的可能很简单,但我还没有弄清楚。如果有人有什么建议,请回复!
我当前的 nancy 引导程序实现:Bitbucket Snippet
c# - 根据触发解析的父树解析参数?
我有类似这样的代码:
我想要的只是 A 的两个实例——一个与 C1 一起使用,一个与 C2 一起使用。我想要 B 的两个实例。传递给 C1 的 B 的实例应该获得为 C1 创建的相同的 A 实例。C2和他的参数应该有不同的A实例。我如何在Autofac中配置这个场景?看起来 Owned 实例生命周期功能应该处理这个问题,但发布的示例只有一层,而不是两层。
我的实际情况要复杂得多。我有十几个 IB 继承者和六个 C defs,它们采用 IB 继承者的各种组合。我想避免使用命名实例,因为这会使我的引导程序显着膨胀并使其难以维护。
第二个问题:DryIoc 支持这个吗?我可以被说服转换。
dryioc - 如何在 ASP.Net WebForms 应用程序中使用 DryIoC?
我想要一些基本示例,如何将 DryIoC 用于 WebForms 应用程序与 BasePage(所有页面的基础)和 IRepository 和 Repository 用于连接数据库(通过 NHibernate)
目前它是使用包含 NHibernate 会话的应用程序属性制作的。我想用 DryIoC 来做,以便在任何地方使用 Repository 进行数据库操作。最好的方法是什么?
dryioc - DryIOC 事件聚合器
我正在尝试使用 DryIOC 实现事件聚合器。我有一个事件调度程序,如下所示:
我有许多可以处理事件的类。由以下界面表示:
它的要点是,当我调用事件调度程序调度方法时,并传入一个继承自 EventArgs 的类型。它从 IOC 容器中获取所有实现 IHandles<> 的类型并在它们上调用句柄方法。
一个事件类型可以由多个服务处理。一个服务可以处理多种事件类型。例如:
服务需要做其他事情以及处理事件(但可能没有其他接口,因为它们不是必需的)。 有些服务需要是单例的,事件的处理应该尊重单例注册。因此,对 container.Resolve(IHandles<>) 的调用应该返回该服务的 Singleton 类型,而不是创建多个实例。这些服务从多个来源收集事件,因此需要在将它们发送到其他地方之前保持内部状态。因此需要将调用不同服务的不同事件处理程序发送到同一个底层实例。
我希望能够将 IHandles 接口添加到任何服务,并让它自动拾取,而不必每次都摆弄 IOC 映射。理想情况下,服务类型也应该使用基于约定的映射来添加。
到目前为止,我已经为此工作了两天。我放弃了尝试用结构图来实现它。现在我正在尝试 DryIOC - 但发现它更难理解和正确。
dryioc - DryIOC 容器内容物
StructureMap 在 Container 类上有一个超级有用的调试方法,叫做 WhatDoIHave()
它显示容器中的每种类型及其生命周期、guid 和一堆其他信息。它对调试很有用。
这里有一些信息:
http://jeremydmiller.com/2014/02/18/structuremap-3-is-gonna-tell-you-whats-wrong-and-where-it-hurts/
DryIOC 是否具有等效的调试功能?
c# - DryIoc:无法使用 Made 注册
我目前正在使用 DryIoc 容器。
在文档中显示了如何使用 Made 进行注册:
我非常喜欢这个,但是就我而言,编译器无法识别 Made 类。如果使用 Made 已过时,那么还有什么替代方法?
session - DryIoC / Web API 2 / OWIN 和会话管理
试图找出一种使用 DryIoC (v2.0.0-rc4build353)、MS OWIN (v3.0.1、WebAPI2 (client v5.2.3) on VS2015、.Net 4.5 建立会话管理的方法。
我正在用 REST API 包装一个相当复杂的遗留应用程序。严格的 API 服务器,没有 UI/MVC。我知道我不可能完全无状态,因为我必须保持一个“模型”开放的服务器端。用户也必须对模型进行身份验证。因此,会话的概念出现了。我想尽可能多地使用 DI。
我第一次放弃的尝试是使用 Ninject 并将 ISession 映射到提供程序工厂。虽然 Ninject 有它的优点(例如模块),但我不喜欢它的复杂性。我不知道如何从工厂访问请求对象。经过一番研究,我决定改用 DryIoC。
在下面的代码示例中,DryIoC 创建了一个单例会话(请参阅下面的重用)并将其注入我的 RootController。如果我在 Transient Scope 中注册 Session,显然每个请求都会获得一个会话。我设想调用“api/login”将生成一个令牌。客户端将缓存它并在标头中与后续调用一起提交(以启用 API 版本控制)。
挣扎于如何管理范围。
编辑:澄清我认为我需要什么:我不确定如何实现 DryIoC 在实例化控制器之前调用的工厂,我将在其中查找会话令牌并创建/查找关联的 ISession 实例。然后,DryIoC 将使用它注入控制器。
编辑:我试图隐藏所有会话管理样板,并让所有控制器都注入一个已经初始化的会话。如果此请求没有会话,则单独的路由将返回错误。需要注意的另一件事是客户端必须显式获取令牌。没有全局“当前”令牌或会话的概念。
nservicebus - 使用 DryIoc 或 LightInject 实现 NServiceBus/MassTransit IContainer
我在大多数 .Net Web API 2+ 解决方案中都使用过 DryIoc 和 LightInject。使用新架构,我更愿意在下一个 ESB 实现中使用 NServiceBus 或 MassTransit。但是,我找不到任何有用的代码参考可以帮助我使用 DryIoc 或 LightInject 实现 NServiceBus/MassTransit IContainer。其他 IoC 对我来说不是一个选择,因为我公司的要求是只能从上述两者中进行选择。非常感谢社区的任何帮助。
rebus - Rebus DryIoc 容器适配器的实现
这个问题是针对 Rebus 发明者的。如果我想将 DryIoc 作为内置 Rebus Container Adapter 之一,是否需要自定义某些 DryIoc 源代码?
c# - 使用 DryIoc 解决多个注册之一
鉴于下面的小例子,有没有办法在 中标记(属性,名称约定,...)MyInterface
参数MyService2
,以便它能够正确解析,或者是传入的唯一方法MyInterface[]
?我知道 Castle Windsor 可以根据命名约定来解决它,但我在 DryIoc 中没有找到类似的东西