问题标签 [tinyioc]

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 回答
844 浏览

c# - Nancy TinyIoc 不使用已注册的实例

我注册了我的实例 ConfigureApplicationContainer:

Nancy 尝试创建 ParametersModule 时发生崩溃。看起来它正在尝试创建 ParameterGetSetEngine 的实例。为什么不使用我注册的实例??

0 投票
2 回答
540 浏览

c# - IDisposable 对象是否在使用 RequestContainer 的 Nancy 请求结束时被释放?

我正在将 DbContext 注册到TinyIoCContainer传递ConfigureRequestContainerDefaultNancyBootstrapper.

虽然这很好用,但我注意到Dispose一旦请求完成,上下文中的方法就不会被调用。我希望 DbContext 在请求关闭连接后被处理(我们正在使用 SQLite)。

问:一次性实例是否真的在 TinyIoCContainer 中的请求结束时被丢弃?

引导程序

语境

更新

标记的答案最终是正确的。我基本上不得不做这样的事情:

0 投票
1 回答
127 浏览

.net-core - 访问 Nancy Startup 类中的注册对象

我正在南希写一个服务,我正在使用一些中间件来监控服务:

中间件配置为使用类中HealthCheck()定义的函数Startup

SomeRepo有一种HealthCheck()查询数据库以确认它可用/响应的方法。但是如何注入SomeRepoStartup类中,或者访问容器来解决SomeRepo

0 投票
1 回答
195 浏览

c# - TinyIoc 寄存器和多种类型的接口

我正在尝试IServiceTinyIoc

目前我有多个类继承自Iservice

例如AuthenticationServiceRestService两者都继承自Service实现的基类Iservice

我这样做的方式是这样的,分别注册每个服务。

因为他们都继承自有 Service : IService没有办法在一个电话中注册两者,还是我必须单独注册每个服务?

0 投票
1 回答
861 浏览

c# - 使用泛型注册 TinyIoCContainer

我正在使用 .NET Nancy 的 TinyIoCContainer 进行依赖注入。我正在尝试通过泛型注册一个接口及其实现,如下所示:

这给了我以下例外:

无法注册类型 System.Type - 抽象类或接口不是 SingletonFactory 的有效实现类型。

这表明 SingletonFactory 不能使用泛型。我也尝试将类型注册为多实例:

我得到了同样的例外。

我能找到的最接近的问题是关于一个稍微不同的问题,通用接口: https ://github.com/NancyFx/Nancy/issues/2747和 https://github.com/grumpydev/TinyIoC/issues/ 8

有没有人能够做到(也许是通过反思?)。或者,是否有一个开箱即用的 IoC 容器支持它?

0 投票
2 回答
555 浏览

c# - 使用 TinyIoc 注册和解析 Func<>

我正在尝试向Func<string>TinyIoc 注册一个:

以及依赖于它的构造函数的类型:

当我使用

一切都很好,但我无法注册第二个Func<string>,因为它无法解决。我猜这很模棱两可。没有抛出错误,但注入的 Func 是错误的。我尝试添加名称,但没有成功。

TinyIoc 真的支持这个吗?还是我必须将我的函数包装到对象中?喜欢策略模式?

0 投票
1 回答
444 浏览

memory-leaks - DI 容器泄漏内存或 BenchmarksDotNet MemoryDiagnoser 提供不准确的测量?

介绍

我们正在尝试使用BenchmarksDotNet.

为了简单起见,这里是一个简单的例子TestClass

我们正在通过以下 NUnit 测试实施基准测试netcoreapp2.0

测试输出包含以下摘要:

测试输出还包含所有Console.Write输出,这证明0 B这里意味着没有内存泄漏,而不是由于编译器优化而没有运行代码。

问题

当我们尝试TestClass使用TinyIoC容器解决时,混乱就开始了:

摘要表明 1.07 KB 被泄露。

AllocatedResolveTestClass值与来自 的调用次数成比例增加TestBenchmark1,总结为

这表明要么TinyIoC保留对每个已解析对象的引用(根据源代码,这似乎不是真的),要么BenchmarksDotNet测量包括在标有[Benchmark]属性的方法之外的一些额外内存分配。

两种情况下使用的配置:

顺便说一句,用TinyIoC依赖Autofac注入框架替换并没有太大改变这种情况。

问题

这是否意味着所有 DI 框架都必须为已解析的对象实现某种缓存?这是否意味着BenchmarksDotNet在给定示例中以错误的方式使用?NUnit首先使用和的组合来寻找内存泄漏是个好主意BenchmarksDotNet吗?

0 投票
1 回答
81 浏览

nancy - 在 NancyFX 模块中注入一个对象

我试图在遗留应用程序中使用 Nancy 作为自托管,所以我试图尽可能少地改变。

我的 Nancy 的模块需要与先前构造的对象的实例交互,从 Nancy 的角度来看,它就像一个单例。我保证在 Nancy 服务器的整个生命周期中都会存在相同的实例。

我的问题是,如何在我的模块中使用这个实例?提前感谢您的任何帮助或参考。

0 投票
0 回答
302 浏览

c# - 使用 .net web api 和 tinyioc 解决依赖关系

我让 TinyIoc 在 .net web api 中愉快地运行。我只是尝试添加一个使用 System.Web.Http.HttpClient 的服务类。我在容器中显式注册了我的新类,但是突然之间,我在应用程序启动时遇到了一堆运行时错误——tiny 找不到一堆 System.Web.Http 类。这是第一个这样的错误......

这里是 global.asax 中的 Application_Start() 方法

这是我的 WebApiConfig 类中的 Register() 方法...

最后,我的 TinyIocDependencyResolver 在这里...

这对任何人都意味着什么?HttpClient,可能是导致我痛苦的添加,是显式实例化的,而不是通过 DI。为什么我应该得到不属于我的类的 DI 错误?所有项目的目标框架都是 .net 4.5。

0 投票
0 回答
106 浏览

xaml - 为什么我不能将依赖项注入 ContentPage?

请看下面的代码:

它按预期工作。现在说我想注入一个依赖:

在第二段代码中,我看到一个编译错误:“字典中不存在给定的键”。问题是什么?我已经注册了依赖关系。