问题标签 [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 回答
382 浏览

c# - 如何在 ServiceStack 中注册 NodaTime?

我正在使用最新的 ServiceStack 并希望使用 NodaTime 而不是 .NET DateTime 类。我读过的建议显示使用基于 IClock 的属性,我已经这样做了。现在我需要注入 IClock,但我尝试过的方法不起作用。我试过:

但我收到异常“找不到类型'SystemClock'的构造函数。

我也试过

编译,但不注入 IClock。

欢迎任何建议。

0 投票
0 回答
189 浏览

c# - 与 EF 一起使用的 ServiceStack 测试方法

作为我自己问题的答案:

在服务堆栈中使用具有通用存储库的实体框架以及为服务编写集成\单元测试的最优雅的方式是什么?

目前,这就是我的结构的样子:

通用存储库层:

工作单元层:

业务层:

API项目:

所以当涉及到集成测试时,我可以这样做:

声明_appHost

并像这样配置 funq 容器:

并像往常一样测试:

除了让所有层都可用于 DI 和模拟之外,我还创建了 IDbContext、IGenericRepository、IUnitOfWork 等接口。我没有在此处包含它,以使其尽可能简单。

但我想知道是否有更好(更优雅的方式)来做到这一点。

0 投票
2 回答
596 浏览

servicestack - ServiceStack Funq ReuseScope.Request 注入相同的对象而不是新实例

我遇到了问题ReuseScope.Request即使我指定了ReuseScope.Request. 我使用这两个调用来配置容器以获得 MasterConfig:

GetMasterConfig(true) 方法返回一个新的具体 MasterConfig。但是,当我尝试在服务中使用 MasterConfig 时,每个请求都会得到相同的实例。

如果我将 MasterConfig Register 上的范围更改为ReuseScope.None,我会按预期加载一个新的 MasterConfig。我错过了什么?我注册 MasterConfig 的方式有问题吗?为什么要ReuseScope.None解决问题?为什么ReuseScope.Request给我同样的例子?

笔记:

0 投票
1 回答
183 浏览

c# - 应用程序设计——ServiceStack;OrmLite.MySql; 风趣;IDb连接;石英

我们有一个ServiceStack服务 (API),它提供使用AppSelfHostBase托管的 HTTP 端点。这些服务稍后使用ServiceStack.OrmLite.MySql查询数据库。所有方法都使用async/await 模式实现。数据库连接手动注册到具有请求重用范围的 Funq,并注入到基 DAL 类的属性中。


当此服务仅由 HTTP 请求访问时,这一切都可以正常工作。我们有另一个调用此 API 的 Windows 服务。由于它们可以托管在同一台服务器上,我们实现了本地IRestClientAsync来包装服务调用,因此 API 服务方法可以加载到 Windows 服务,并更有效地访问(例如 1200 req/sec 与 400 req/sec )。这个 Windows 服务有很多线程同时运行。通过这样做,我们打破了请求生命周期并得到

“已经有一个打开的 DataReader 与此 Connection 关联,必须先关闭它。”</p>

错误。我们尝试使用自定义连接提供程序手动处理此问题,使用ThreadLocalCallContext通过线程分离连接。这并不是一直有效。我们尝试通过调用OnBeginRequest(null);OnEndRequest();手动处理请求生命周期,但性能很差(接近 HTTP 调用),并且出现“打开 DataReader”错误。


我们正在使用选项,因为线程是从Quartz .NET作业RequestContext.UseThreadStatic实例化的。


管理数据库连接的最佳解决方案是什么?我们能否使当前的解决方案可靠地工作?

0 投票
1 回答
269 浏览

elasticsearch - ServiceStack 的 Funq 和 ElasticSearch

我正在尝试使用 ServiceStack 的 Funq 连接 ElasticClient,但是在尝试调用它时出现空引用异常。

这是我的设置:

在 AppHost.cs 中:

然后在我的 ServiceInterface 项目的 ListingServices.cs 类中:

但是 Elastic 仍然设置为 Null 并给出一个空引用异常。

关于如何解决的任何想法。

0 投票
1 回答
324 浏览

c# - 在 Funq 中使用开放泛型

我有以下界面:

为此有许多不同的实现,例如:

我希望能够将此类的实例注入到服务的构造函数中:

请注意,泛型类型参数在需要实例的地方是封闭的。

我在 Funq 中看不到任何方法可以做到这一点。可能吗?或者其他 IOC 是否允许这种用途?

0 投票
2 回答
1590 浏览

c# - ServiceStack 带有构造函数的服务类

我正在使用服务堆栈,但我不能(或者我不知道如何使用构造函数创建服务类)。

这是我所做的:

所以,正如我所说,在 ClientService 类中,我想创建一个构造函数,但是当我向 post 消息发出请求时,它向我显示以下错误:

尝试解析服务“DexBrokerClient.Services.ClientService”或其自动连接依赖项之一时出错

0 投票
1 回答
265 浏览

servicestack - ServiceStack.Funq.Quartz 无法实例化类型?

ServiceStack.Funq.Quartz 示例代码是

以上工作正常。如果我在 MyServices 类中,删除了 Any 函数,并注释Execute内部代码。

quartz.net 将收到错误:

为什么类必须具有公共对象Any(Hello request)功能?

0 投票
1 回答
186 浏览

c# - 如何使用服务堆栈的 funq 容器作为依赖注入器来实现每个请求模式的休眠会话

我通过将会话注入 global.asax 中的服务方法来获取会话

1

2

3 在服务方法中,我将会话作为

问题是当并发请求来到这个服务方法时,它正在抛出异常。我知道Nhibernate不支持并发。如何使用Funq Container实现它?

0 投票
1 回答
185 浏览

servicestack - 非服务/非控制器和 IOC 中的 ServiceStack IServiceGateway

我有一个带有hangfire和服务堆栈服务的控制台应用程序。Hangfire 有自己的 IOC 适配器实现,它已集成到 Funq 适配器中。我正在尝试使用 IGatewayService 来调用 inproc 服务。

网关始终为空。

我试过了:

和其他一些非 funq 适配器和网关始终为空。我可以在寄存器中创建网关,new TestServiceGateway()但它需要一个IRequest. 如果我在那里传递 null 它也不会工作。

hangfire 调用很简单: