问题标签 [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.

0 投票
1 回答
82 浏览

dryioc - 在循环中注册和解析依赖项

我在使用 MVVM 的应用程序中有以下硬编码设置:

从文件中读取多个 IP 地址,每个地址都会创建一个 ViewModel 来显示来自 IP 的内容。

如果我想让 DryIoc 处理这个问题,最好的方法是什么?所有new对象都是唯一的 foreach 循环。

0 投票
1 回答
1710 浏览

dryioc - 在特定示例中注册简单类型

考虑以下

ClassAMasterClass有一个构造函数,它接受一个和 a的实例,string并公开一个名为Namestype的属性string[]

ClassBIJuicePresser有一个带有 a和 a的构造函数IEnumerable<string>

ClassC有一个构造函数,它接受一个IEnumerable<string>.

手动我会做这样的事情来把它们联系在一起。

我如何设置 DryIoc 来为我处理这些注册/解决方案?

0 投票
1 回答
559 浏览

c# - 如何使用 DryIOC 使用父层次结构接口解决

我有以下对象结构

有什么方法可以在 DryIOC 中的这些父子接口之间进行某种绑定?

编辑:

我做了一些研究,发现 RegisterMany 做到了,但我有点困惑,因为

如果我取消注释上面的单个注册行,Resolve 适用于 IAction 和 ICommand,但不适用于 IParser。

似乎RegisterMany没有正确注册父类型......

编辑2:

我将注册更改为以下,使用RegisterMapping

IParsers 列表中的项目是第一个注册映射的类型,在这种情况下ICommand

我正在使用 DryIOC v2.6.2

0 投票
1 回答
755 浏览

dryioc - DryIoc 注册默认原语

我有一个 Caliburn.Micro MVVM 框架的助推器,我只需在程序集中自动注册所有 ViewModel。

一些 ViewModel 具有带参数的构造函数,我通常在自动注册完成后手动覆盖这些(使用Register-parameter )。ifAlreadyRegistered: IfAlreadyRegistered.Replace

但是,当 ViewModel 具有原始类型时,DryIoc 会自动使用默认值填充该类型。

然后,当我使用正确的参数手动注册 ViewModel 时,我会为同一个 ViewModel 获得两个注册,其中 Caliburn.Micro 将选择默认填充的一个。

处理这些东西的建议方法是什么?

更新:


ctor ViewModel(DependencyA depA, string[] list)

这被注册为ServiceKey=DefaultKey.Of(0) registered as factory

所以我现在知道应该是什么列表(在自动注册之后),我再次注册 ViewModel,这一次使用链接到实际的不同服务密钥string[]

这将导致另一个注册with ServiceKey="list" registered as factory。我希望这个命名注册来替换默认值,但我必须保留名称才能实际填充列表。

原因:Caliburn.Micro 将尝试按类型解析,我必须明确使用 CaliburnsIoC.Get<>()来提供密钥,这意味着我无法ViewModel在构造函数中注入。

0 投票
1 回答
478 浏览

dryioc - 从 Autofac 迁移如何解决?

果园缓存设计:

Autofac代码:

问题:

Autofac有一个方法:

但我在 Dryioc 找不到参数解决方案,在 Dryioc 怎么办?

0 投票
1 回答
169 浏览

asp.net-web-api - 将不同配置的服务注入控制器

在 Web API 应用程序中,我有两个控制器,MyAController 和 MyBController,每个都依赖于 IMyService,但配置不同:

我尝试通过以下方式配置 DryIoc:

如果我尝试使用以下方法调用解决方案:

我得到了两个分别配置了 configurationA 和 configurationB 的控制器。但是,当我尝试使用 REST 调用调用 api 时,出现以下错误:

所以我想,我需要以不同的方式注册控制器......但是如何?

任何帮助将不胜感激....

0 投票
1 回答
276 浏览

dryioc - DryIoc 注册类

我喜欢 StructureMap 的注册表功能,它可以帮助我将 IOC 注册分组:

http://structuremap.github.io/registration/registry-dsl/

我使用 DryIOC 作为我的容器——它工作得很好——但我的注册表类需要重新组织。DryIOC 中是否有等效的注册表功能?

0 投票
1 回答
445 浏览

c# - 如何在 DryIoc 中使用私有构造函数的实现?

MyClass如果 DryIoc是内部的、受保护的甚至是私有的,如何配置 DryIoc 以使用构造函数?

0 投票
1 回答
145 浏览

c# - 注册程序集也是注册枚举

我在我的应用程序中将 DRYIOC 用于 DI。我的 MVC 应用程序中有接口,我想注册到 dryIOC。所以我使用 RegisterMany 如下。

但我收到如下错误

未指定如何为具有 0 个公共构造函数的实现类型 Web.Enums.Enum1 选择单个构造函数。

0 投票
1 回答
752 浏览

c# - 如何解析使用 DryIoc.Container 实现接口的特定类型(在运行时已知)的实例

标题可能具有误导性,但基本上我想DryIoc.Container解析一个接口的特定实现,其类型(实现接口的类的类型)在运行时给出(注册了同一接口的多个实现)。我不能用来识别实现,因为解析实现的代码预计会执行以下操作:获取我们想要的实现(实现的类型是通过我们在运行时读取的配置获取的)。serviceKeycontainer.Resolve<IService>(*** here specify the runtime type of the implementation ***)

上面的代码抛出:

我知道我可以获得接口的所有注册实现并过滤具有我想要的实现的接口(使用DryIoc 的维护者类似于此响应https://stackoverflow.com/a/37069854/5767019的代码),但是当我要求它时,我想不出一种方法让容器解决它!