问题标签 [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.
c# - 如何从 ServiceStack 中的自定义序列化程序访问 IHttpRequest
我们的模型有自定义序列化程序,可以根据请求路径保护敏感数据。(例如,如果请求不以“/admin”开头)。
到目前为止,我们已经尝试在带有 ReuseScope.None 或 ReuseScope.Request 的 RequestFilter 上使用 Funq 容器注册 IHttpRequest,在序列化程序上,我们从容器中获取 IHttpRequest。
我们发现,如果有多个请求未决,容器将返回最后注册的 IHttpRequest,它并不总是正确的请求对象。
我知道我们可以尝试在应用过滤器属性的模型上实现对敏感数据的保护,但这非常麻烦,因为我们的模型对象通常嵌入到其他对象或集合中。
如果不是因为无法从序列化器中获取正确的 HttpRequest 对象的问题,让序列化器来做这件事对我们来说是迄今为止最好的解决方案。
那么,这样做的正确方法是什么?或者这是一个不好的做法?
这里有一些代码示例:
所以这是一个私有方法,我的序列化程序使用它来定义它们是否在“管理员”路由中被序列化:
这是它的用法:
在我的 AppHost 初始化中,我有:
注意:我使用的是 ServiceStack v3。
c# - Funq.Container中同一接口的ServiceStack多个实现
在 ServiceStack 应用程序中,我将 Funq 配置为为每个请求注入一个会话,如下所示:
我的服务看起来像这样,它工作得很好:
现在,当我想将第二个 NHibernate 数据库与它自己的会话工厂添加到混合中时,问题就出现了:
我一直在尝试各种可以使用 Funq 的方法,当我发现“RegisterNamed()”方法时,我以为我已经找到了前进的方向,但这仍然无济于事,因为我不能使用任何东西我的服务中的 TryResolve() 除外。
这似乎应该是可能的,但我正在努力解决这个问题......任何建议将不胜感激。
servicestack - ServiceStack / Funq 是否支持注入泛型成员?
我的服务基类具有通用公共属性
我正在尝试注入
但这不起作用(属性为空),而其他非泛型属性被初始化。
它应该(我能做到)工作吗?
c# - 解决多租户环境中正确接口实现的策略
给定这个接口:
和它的2个实现:
鉴于上面的简单代码,假设每个公司的计算方法的实现会有所不同。在初始化期间加载程序集并调用正确程序集的正确方法的正确方法是什么?我已经弄清楚了最简单的部分是确定请求是针对哪家公司的,现在我只需要调用与当前业务相对应的正确方法。
谢谢你,斯蒂芬
更新的示例代码
向@Scott 大声喊叫,这是我必须做出的改变,才能使接受的答案正常工作。
在这种情况下,我必须使用 Assembly Resolver 来查找我的类型。请注意,我使用属性来标记我的程序集,以便基于它的过滤更简单且不易出错。
标记属性
在插件程序集中的使用
最后,对静态 MyTypes 稍作更改以支持限定名称
c# - C# IoC 具有不同 Id 的同一 ViewModel 的许多实例
我正在使用来自 ServiceStackv3 的 FunQ。我需要从 Container 解析ViewModel
不同的对象 ID。
基本上构造函数参数应该区分实例(我知道它不能那样工作,它是示例):
随后:
我试过ReusedWithin
没有成功。
我需要两个实例同时用于表示层,用户需要比较屏幕上的两个对象。
是命名实例唯一选项吗?我是独立的应用程序,带有自托管的 ServiceStack 主机。
这是我的控制台应用程序:
编辑
申请结果:
servicestack - 服务类具有未解析的公共属性
我很难理解为什么我的 Manager 类在通过 Service 类中的这个示例 POST 方法处理请求的上下文中为空。我注册了 Manager 和它的依赖项,就像这个例子一样,它似乎注册得很好。我可以让它工作的唯一方法是,如果我告诉属性去并通过 apphost 引用中的容器来 resolveNamed。谢谢!
c# - Funq.Container.RegisterAutoWire() 不会在 ServiceStack 中自动注入类属性
我正在使用 ServiceStack 4.0.34。
Container.RegisterAutoWire() 方法有效,但是当我创建注册类的实例时,除非我HostContext.Container.AutoWire(this)
在类构造函数中手动调用,否则不会发生自动装配。
我已经阅读了 GitHub 上的文档和 stackoverflow 上的几个条目。我尝试了 Register 和 RegisterAutoWire 方法的不同重载。我也尝试过以不同的方式设置 ReuseScope。没有成功。没有自动注入 DbFactory 属性。
谁能告诉我我是否错过了一步或做错了什么?下面的代码片段:
附录(2015 年 1 月 20 日):这是服务的样子:
c# - ServiceStack Funq 容器将公共成员设置为空
我们开发团队的一些成员刚刚花了一些时间调试一个类似的问题。
在我们的一个单元测试中使用的 RegisterAs 类有一个公共成员:public List Mails { get; 放; }
当此类通过 Funq 解析时,该成员被设置为 null,即使它是在构造函数中设置的。
我们的团队成员一致认为,当该成员不是注册为 Container.RegisterAs<> 的类型时,Funq 将此成员设置为 null 是很奇怪的。
我们目前使用的是 ServiceStack 版本 4.0.33
如果他们不实现在 Funq 中注册的接口,那么能够将 ServiceStack.Funq 配置为不接触公共成员会很好。
servicestack - ServiceStack 的默认 IoC 是否有类似于 ninject 的 .ToFactory() 方法的东西?
使用ninject,我可以使用应用程序组合根中的以下语法创建一个抽象工厂:
ServiceStack 的默认 IoC 容器是否有类似的功能?我想在我的一个服务类中实现一个抽象工厂,以便根据需要创建存储库。
我听到的一个建议是使用:
但我想避免在组合根(Apphost.cs 文件)之外创建对容器的访问。
funq - Funq:一个 DI 容器
我在 MVVM 的示例中将 Funq 视为 DI 容器。我试图找到它的文档,但找不到。
有谁知道 Funq 的良好文档来源
非常感谢--Avi