问题标签 [light-inject]
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.
ioc-container - LightInject IoC容器在回退方法中抛出stackoverflow
我正在摆弄 LightInject 来尝试设置一个 IoC 解决方案,其中包含一个域项目、一个基础设施项目、一个 MVC 项目和一个 DependencyResolution 项目。Infrastructure、MVC 和 DependencyResolution 引用域。MVC 引用 DependencyResolution 和 DependencyResolution 引用 LightInject。
这个想法是 DependencyResolution 在应用程序启动时注册所有必要的依赖项。目前它不了解 MVC 项目中的控制器。相反,我设置了一个备用例程来捕获所有未知的 MVC 控制器类。然后在回退例程中注册 MVC 控制器并返回它。通过这样做,我希望这段代码只运行一次,因为它只是在第一次点击时 MVC 控制器尚未注册。但这种情况并非如此。相反,我得到一个 StackOverflowException ,因为每次请求 MVC 控制器时都会命中回退例程,即使它是第一次注册的。
所以问题是为什么会发生这种情况?这是预期的行为吗?如果是,为什么会这样以及如何解决?
编辑:这是下面的源代码。
c# - 使用 LightInject 自动注册依赖项
我使用 LightInject 作为我的类库项目的 IoC 容器。由于这些项目类型没有任何入口点或启动方法,我可以在其中编写用于注册依赖项的代码。我想实现一些自动注册,所以任何使用我的库并且依赖于它的客户端,它们都应该在没有客户端显式调用注册方法的情况下自动解析。
LightInject 也应该从客户端中抽象出来。它永远不应该知道对象是如何在类库内部创建/销毁的。
asp.net-web-api - 什么是 LightInject 中 CastleWindsor 的 container.Release 的等价物?
我在 Seemann 的网站上看到了 ASP.NET Web API 依赖注入。它虽然使用 CastleWindsor。
什么是 LightInject 中 CastleWindsor 的 container.Release 的等价物?
http://blog.ploeh.dk/2012/10/03/DependencyInjectioninASP.NETWebAPIwithCastleWindsor/
c# - Lightinject 中的 FluentValidation
我正在使用fluentvalidation和lightinject
这是我插入博客文章的代码;
公共 OperationResultDto Add(BlogArticleDto blogArticleDto) { OperationResultDto 结果 = new OperationResultDto();
如您所见,“验证部分”很大,我不想在我的服务(业务)层中验证我的 dto 参数。我想在我的 ioc (lightinject) 中验证“参数”。
这是我的ioc代码以继续进行;
现在,我可以将方法的所有参数提供给我的 fluentvalidator。所以我知道我需要在这里定义 typeOf 参数,但在那之后我如何调用流利验证的相关验证对象* 来验证参数?
c# - Resolve object using DI container with object instance
I have a ICommand interface and tasks that are using dependencies injected by constructor. Dependencies are using different constructors so they have to be resolved by the request itself. I want to tell my container how to resolve some dependencies in the specific context it's being resolved.
I've registered my interfaces and classes in LightInject:
Now, I want to do something like this in my requests:
What would be the correct way to do this in maintainable way with any DI container, considering that dependency chain might get quite long for complex methods?
EDIT I made my use case more clear (changed classes implementing IUser).
dependency-injection - LightInject - 调用 WebApi OWIN Identity TokenEndpointPath 时没有范围
我有一个非常基本的带有令牌身份验证的 WebAPI 设置。
在应用程序开始我做:
哪个电话:
现在,当客户端调用令牌端点(请求令牌)时,我在这里定义的提供者:
正在与此方法一起使用:
当我尝试获取实例时,出现以下错误:
尝试创建一个没有当前作用域的作用域实例。
我知道 LightInject 对每个请求都有一个开始/结束范围的概念,它实际上告诉我没有开始范围。但我似乎无法弄清楚究竟是什么坏了,需要修复。
c# - Lightinject 和 xUnit InjectData
我正在尝试使用LightInject框架设置xUnit ,但无法让 xUnit InlineDataAttribute 工作。以下测试代码不起作用:
这给出了一个错误,说它找不到任何可以为参数 somedata 注入的东西。删除 InlineDataAttribute 将使注入工作。我真的很喜欢 xUnit 的 InlineData 功能,那么如何让它与 LightInject 一起工作?
ioc-container - 在 LightInject IoC 中注册多接口实现
我有interface
两个实现。
我尝试使用此代码,但不起作用。
LightInject
将省略第一次注册,只注册SQLiteLogger
。那么如何在中注册具有多个实现的相同接口LightInject
?
light-inject - Lightinject 等效于 Ninject 的 WhenInjectedInto
LightInject 是否有与 Ninject 等效的方法WhenInjectedInto()
?( Ninject - 上下文绑定)
例如,我有两个类,比如说MicrosoftOffice
和LibreOffice
,它们实现了一个 interface IOfficeSuite
。另外两个类Windows
和Linux
实现另一个接口IOperatingSystem
。后一个接口依赖于IOfficeSuite
.
我想根据上下文决定要实例化哪个办公套件。因此,如果 LightInject 将一个IOfficeSuite
实现注入到一个Windows
对象中,它应该选择MicrosoftOffice
; 如果它是一个Linux
对象,它应该注入一个LibreOffice
实例。
谢谢