问题标签 [funq]

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

memory-leaks - ServiceStack Funq 容器弱引用扩散

我最近编写了一个处理大量吞吐量(每天大约 60+ 百万个请求)的小型服务,它遇到了内存问题。起初,我查看了所有常见的嫌疑人,确信这一定是我写的东西,而不是与非常有用且面向性能的 ServiceStack 库有关的东西。然而,在生产服务器上使用 windbg 到 !dumpheap -stat 时,我惊讶地发现内存中的绝大多数对象都是 System.WeakReference 类型,其中 !gcroots 指向 ServiceStack 的 Funq 容器。

我什至没有在我的服务中使用 IoC 的数据结构,所以我想知道为什么会这样?我是否错误地初始化了某些东西?我的 apphost 初始化类只是使用程序集和名称信息调用基本构造函数,我根本不重写 Configure 方法。

我在其他地方读到 System.WeakReference 对象经常在极少数情况下由 .NET 插入,因为 Visual Studio 编译二进制文件时启用了“编辑并继续”调试选项,但在我的 VS 中将其关闭没有效果(大概是因为SS 二进制文件已经编译并在我的项目中被引用)。

有没有其他人遇到过这个问题?

0 投票
1 回答
1910 浏览

c# - 如何使用 ServiceStack 和 Funq.Container 解决 ILog

ServiceStack AppHost 提供了一个 Funq.Container 用于注册可以在构造时注入到服务中的类型。这个容器是否可以用于注册一个 ILog 工厂,该工厂返回一个适合其所在类型的 ILog?

换句话说,给定以下 AppHost:

和服务:

有什么我可以添加到 AppHost.Configure 以避免在我的所有服务中使用静态 ILog 样板的(而只是使用普通的旧 ILog 属性)?

第三种方式,最简洁地说,我可以使用 Funq.Container 进行 ILog 注入而不是 LogManager 吗?

0 投票
1 回答
1434 浏览

servicestack - ServiceStack - 依赖似乎没有被注入?

我有以下存储库类:

然后在我的AppHost.Configure(). 我像这样注册依赖项:

但是当我运行我的应用程序时,我的应用程序似乎DbFactory是 null 并且没有被正确注入,因为我得到了一个空引用异常。

0 投票
2 回答
677 浏览

c# - 容器未在构造函数中设置属性

我有一个使用ServiceStack创建的服务。我将 Funq 用于我的依赖注入,因为它默认附带 ServiceStack,但这可能是其他 DI 容器表现出的行为。

我在启动时注册我的类型:

我在一个类中有这个构造函数:

我的具体实现的构造函数是:

一切都解决得很好,我可以进入代码并看到事情按预期工作。但是,AbritraryProperty没有正确设置。我可以逐步查看它设置为字符串值,但是一旦代码返回到调用代码(在本例中,它将是 的构造函数ExampleServiceArbitraryProperty现在为空。

  1. 这种行为是设计使然吗?
  2. 如果是设计使然,那么使用 DI 是否意味着我不应该在具体实现的构造函数中做任何事情?
  3. 如果是设计使然,那么为自动属性设置默认值的正确方法是什么?
  4. 如果不是设计使然,那又是怎么回事?
0 投票
2 回答
3788 浏览

.net - 如何在我自己的项目中使用 ServiceStack Funq

在工作中,我们在 ServiceStack 中进行了几个新的 Web 服务项目,并在其中一些中利用了 Funq。我目前正在开发一个单独的项目,该项目将使用上述 Web 服务,并且想知道是否有办法让我在我的项目中使用 ServiceStack 的 Funq 来解决我的依赖关系,以便使用或多或少相同的模式。开发我们的网络服务。

这可能吗?

0 投票
2 回答
582 浏览

http-headers - 从容器访问 IHttpRequest 或 IRequestContext

我需要根据传入请求中 HTTP 标头的值来解决我的服务的依赖关系。

我试过像这样注册一个工厂方法:

我也试过:

但是,两者都抛出ResolutionExceptions。

我不想让我的服务负担决定使用哪种实现。我只是希望他们IDependency在他们的构造函数中有一个并让容器解决它。

有没有办法做到这一点?或者还有其他方法可以解决这个问题吗?

0 投票
1 回答
651 浏览

servicestack - Funq scope in ServiceStack (Best Practice)

In my Web application I use a standard mechanism for resolving dependencies into a AppHost.cs

public virtual void Configure(Container container){ }

In this method, I register all dependencies.

How can I access Container instance out of controller?

I find an answer: Funq usage in ServiceStack

But Is it the best practice? What about multi-threading? Isn't it(AppHostBase.Instance.Container) a blocking resource?

0 投票
1 回答
350 浏览

nunit - NUnit + ServiceStack 的 Funq AutoWire 问题

我一直在 ServiceStack 3.9.38 项目中测试我的业务逻辑,并且在单独运行单元测试会导致成功时遇到问题,而同时运行测试会导致其中一个失败。几个小时后,我进行了可重现的单元测试。如果您运行整个夹具,第二次测试将失败。分别运行测试使它们通过。

这是 Funq.Container 配置的问题吗?或者这是一个错误?任何解决方法?

编辑:我在 GitHub 上发布了一个问题:https ://github.com/ServiceStack/ServiceStack/issues/521

0 投票
2 回答
721 浏览

.net - Funq 和处置子容器

我们在我们的Windows服务中使用Funq来执行一些计划任务,并且对于每一轮我们都创建一个子容器而不是创建我们所有的对象,并且在最后处理子容器时,我们发现这个子容器创建的元素不是GC根容器具有子容器的集合,这些子容器在调用子容器的处置后保留在那里。此代码重现了我们的问题,并将消耗(并保留)800MB 内存。

对我们来说,这很令人惊讶,以这种方式使用 funq 是否只是错误的模式,在这种情况下我们应该如何使用它?还是只是一个错误?

谢谢

0 投票
1 回答
1315 浏览

dependency-injection - 使用 RegisterAutoWired 和 RegisterAutoWiredAs 注册相同的具体类

我的问题很简单。我必须通过接口和具体类型注册所有实现。

我正在使用默认的单例生命周期。我想确保它们解析为相同的实例,但我的测试显示我最终得到了两个实例。

有没有办法在这里使用单个实例?