问题标签 [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.
memory-leaks - ServiceStack Funq 容器弱引用扩散
我最近编写了一个处理大量吞吐量(每天大约 60+ 百万个请求)的小型服务,它遇到了内存问题。起初,我查看了所有常见的嫌疑人,确信这一定是我写的东西,而不是与非常有用且面向性能的 ServiceStack 库有关的东西。然而,在生产服务器上使用 windbg 到 !dumpheap -stat 时,我惊讶地发现内存中的绝大多数对象都是 System.WeakReference 类型,其中 !gcroots 指向 ServiceStack 的 Funq 容器。
我什至没有在我的服务中使用 IoC 的数据结构,所以我想知道为什么会这样?我是否错误地初始化了某些东西?我的 apphost 初始化类只是使用程序集和名称信息调用基本构造函数,我根本不重写 Configure 方法。
我在其他地方读到 System.WeakReference 对象经常在极少数情况下由 .NET 插入,因为 Visual Studio 编译二进制文件时启用了“编辑并继续”调试选项,但在我的 VS 中将其关闭没有效果(大概是因为SS 二进制文件已经编译并在我的项目中被引用)。
有没有其他人遇到过这个问题?
c# - 如何使用 ServiceStack 和 Funq.Container 解决 ILog
ServiceStack AppHost 提供了一个 Funq.Container 用于注册可以在构造时注入到服务中的类型。这个容器是否可以用于注册一个 ILog 工厂,该工厂返回一个适合其所在类型的 ILog?
换句话说,给定以下 AppHost:
和服务:
有什么我可以添加到 AppHost.Configure 以避免在我的所有服务中使用静态 ILog 样板的(而只是使用普通的旧 ILog 属性)?
第三种方式,最简洁地说,我可以使用 Funq.Container 进行 ILog 注入而不是 LogManager 吗?
servicestack - ServiceStack - 依赖似乎没有被注入?
我有以下存储库类:
然后在我的AppHost.Configure()
. 我像这样注册依赖项:
但是当我运行我的应用程序时,我的应用程序似乎DbFactory
是 null 并且没有被正确注入,因为我得到了一个空引用异常。
c# - 容器未在构造函数中设置属性
我有一个使用ServiceStack创建的服务。我将 Funq 用于我的依赖注入,因为它默认附带 ServiceStack,但这可能是其他 DI 容器表现出的行为。
我在启动时注册我的类型:
我在一个类中有这个构造函数:
我的具体实现的构造函数是:
一切都解决得很好,我可以进入代码并看到事情按预期工作。但是,AbritraryProperty
没有正确设置。我可以逐步查看它设置为字符串值,但是一旦代码返回到调用代码(在本例中,它将是 的构造函数ExampleService
)ArbitraryProperty
现在为空。
- 这种行为是设计使然吗?
- 如果是设计使然,那么使用 DI 是否意味着我不应该在具体实现的构造函数中做任何事情?
- 如果是设计使然,那么为自动属性设置默认值的正确方法是什么?
- 如果不是设计使然,那又是怎么回事?
.net - 如何在我自己的项目中使用 ServiceStack Funq
在工作中,我们在 ServiceStack 中进行了几个新的 Web 服务项目,并在其中一些中利用了 Funq。我目前正在开发一个单独的项目,该项目将使用上述 Web 服务,并且想知道是否有办法让我在我的项目中使用 ServiceStack 的 Funq 来解决我的依赖关系,以便使用或多或少相同的模式。开发我们的网络服务。
这可能吗?
http-headers - 从容器访问 IHttpRequest 或 IRequestContext
我需要根据传入请求中 HTTP 标头的值来解决我的服务的依赖关系。
我试过像这样注册一个工厂方法:
我也试过:
但是,两者都抛出ResolutionException
s。
我不想让我的服务负担决定使用哪种实现。我只是希望他们IDependency
在他们的构造函数中有一个并让容器解决它。
有没有办法做到这一点?或者还有其他方法可以解决这个问题吗?
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?
nunit - NUnit + ServiceStack 的 Funq AutoWire 问题
我一直在 ServiceStack 3.9.38 项目中测试我的业务逻辑,并且在单独运行单元测试会导致成功时遇到问题,而同时运行测试会导致其中一个失败。几个小时后,我进行了可重现的单元测试。如果您运行整个夹具,第二次测试将失败。分别运行测试使它们通过。
这是 Funq.Container 配置的问题吗?或者这是一个错误?任何解决方法?
编辑:我在 GitHub 上发布了一个问题:https ://github.com/ServiceStack/ServiceStack/issues/521
.net - Funq 和处置子容器
我们在我们的Windows服务中使用Funq来执行一些计划任务,并且对于每一轮我们都创建一个子容器而不是创建我们所有的对象,并且在最后处理子容器时,我们发现这个子容器创建的元素不是GC根容器具有子容器的集合,这些子容器在调用子容器的处置后保留在那里。此代码重现了我们的问题,并将消耗(并保留)800MB 内存。
对我们来说,这很令人惊讶,以这种方式使用 funq 是否只是错误的模式,在这种情况下我们应该如何使用它?还是只是一个错误?
谢谢
dependency-injection - 使用 RegisterAutoWired 和 RegisterAutoWiredAs 注册相同的具体类
我的问题很简单。我必须通过接口和具体类型注册所有实现。
我正在使用默认的单例生命周期。我想确保它们解析为相同的实例,但我的测试显示我最终得到了两个实例。
有没有办法在这里使用单个实例?