问题标签 [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.
dependency-injection - ServiceStack 的 Funq 类型通过反射注册?
我用过很多次温莎城堡。它有一个非常方便的工具,可以通过反射注册类型。例如,我会在应用程序启动时做这样的事情:
所以,假设我有一堆数据格式提供者——我可以用那一行注册它们(通过接口)。更好的是,当我创建新的(假设它们在同一个程序集和同一个界面中)时,它们也会被注册;在编码它们时,我不必记住这样做。
ServiceStack 的 Funq 容器实现中是否有等价物?我环顾四周,似乎没有看到一个。
servicestack - 使用 ServiceStack 的 Funq 解决依赖关系
我们在 Web 托管 API 服务中使用 ServiceStack,并且已经这样做了一段时间。任何请求的执行路径都遵循以下模式:
请求进来:
--> 服务(处理请求,利用通过构造函数注入的 IManager)
--> IManager(执行业务逻辑,利用通过构造函数注入的 IRepository/ies)
--> IRepository/ies (SQL Server, NoSQL, 利用构造函数注入的连接工厂/ies)
现在我们正在招待另一个客户,其中一些请求需要遵循稍微不同的业务逻辑,并可能使用不同的 repo 策略。但是,API 将保持一致。为此,我将客户端特定的逻辑(上面的具体 IManager 和 IRepository 实现)提取到单独的程序集中。我编写了一个组件来检查当前请求上下文,识别该请求所针对的客户端,然后使用反射和激活器来实例化我想要为任何给定请求执行的特定实现的实例。
但是,正因为如此,我不能只在启动时在容器中注册 IManager 和 IRepository 的实现——这需要根据请求动态解决。我想做某种类型的 LazyResolve,但我找不到任何可靠的例子来说明如何让我从这里开始。
我在这里想疯了吗?我的 API 基本上就是这样 - 发生的自定义逻辑与在运行时调用的客户端特定程序集隔离。这一切在理论上对我来说都是完全合理的,但在实践中它被证明是一个挑战。想法?想法?
c# - Funq:多次注册同一个对象并使用标识符(来自会话)来解析它们
我目前拥有的:
我有一个简单的字典类型string, DbContext
我正在像这样注册我的字典
并通过简单地将字典注入我的构造函数来再次使用字典。所以我总是用其中的每个 DbContext 注入整个字典。然后,我通过使用存储在我的用户会话中的标识符来获得正确的 DbContext。所以使用 DbContext 看起来像这样:
我想要的是
我只想将一个 DbContext 注入到我的类中。使用我会话中的相同属性作为标识符。我已经看到 Funq 提供了使用名称(例如RegisterAs<>()
)注册实例的方法。但我不太确定如何正确使用它们。
我希望 Funq 自动为我解析正确的对象,具体取决于我的会话中特定属性的值。
如果有人知道答案,我将不胜感激。
vb.net - 为什么需要这个 lambda:Function(x) x
我在一个旧分支中找到了这一行,并且由于我非常尊重(无法访问的)作者,我试图理解一个特定的行,更准确地说是最后的 lambda:
container
是一个Funq.Container
通过ServiceStack
。智能感知告诉我 lambda 正在填充(factory As Func(Of Funq.Container, ServiceStack.Configuration.IResolver))
.
关于作者,我可以假设两件事:他的编码能力比我好,而且他可能还没有完成。现在我猜这个 lambda 是故意的,而不是一些没有明确意图的未完成的行,但到目前为止没有人能帮助我理解为什么。