- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个服务 IServiceA 和 IServiceB。 IServiceB 的具体实现如下所示:
public class ServiceB : IServiceB {
public ServiceB(string path, IServiceA serviceA) { ... }
}
所以我需要传入一个字符串和一个ServiceA。
我有点不知道该怎么做。我现在有这个:
var path = _config.Path;
container.RegisterType<IServiceA, ServiceA>();
container.RegisterType<IServiceB, ServiceB>(
new InjectionConstructor(path, container.Resolve<IServiceA>());
这显然是错误的,因为我实际上是在实例化一个 ServiceA 并向所有 ServiceB 注册一个实例。
如何让 Unity 始终解析"new"ServiceA?我尝试从 RegisterType 中删除 IServiceA,这引发了一个异常,告诉我没有 ctor(string)
,这是正确的,因为它是一个 ctor(string,IServiceA)
.
最佳答案
它没有特别详细的记录,但这似乎有效:
container.RegisterType<IServiceA, ServiceA>();
container.RegisterType<IServiceB, ServiceB>(
new InjectionConstructor(path, new ResolvedParameter<IServiceA>()));
我建议在将其用于生产之前对其进行测试。
关于c# - Unity RegisterType 用于自身接受服务的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7800882/
我目前的情况是,我正在为一些代码编写单元测试,这些代码使用另一个代码库,该代码库使用依赖注入(inject)并提供 UnitContainerExtension 来引导库所需的所有具体类。但是在我的单
我正在跟踪在StackOverflow上找到的示例,一切进行得很好,直到需要注册我的类型为止。 我的Web应用程序在带有Prism和MVVM的Silverlight 4上运行。 该示例使用“ Micr
请有人建议我如何使用运行时传递的参数注册一个类 public interface ITabContentSending { TabType TheTabType { get; set; }
我的解决方案中有三个项目。 一个拿着界面: public interface ISetupData { Dictionary Data { get; set; } } 接口(interface
我有两个服务 IServiceA 和 IServiceB。 IServiceB 的具体实现如下所示: public class ServiceB : IServiceB { public Se
我正在尝试执行以下操作但失败了: class base {} class derived1 : base {} class derived2 : base {} interface itr where
这是一个示例控制台应用程序(添加 Unity NugGet 包后它将运行良好)似乎显示了 Unity 中的错误: using System; using Microsoft.Practices.Uni
我按照本教程开始使用 Autofac: http://flexamusements.blogspot.com/2010/09/dependency-injection-part-3-making-ou
我想使用 Autofac 探索自定义拦截器。我目前正在为 DynamicProxy 使用 Autofac 4.2.0 版和 CaSTLe.Core 3.3.3 版。 我从以下基本行为开始,想在 Aut
我一直在使用 Microsoft 的 Unity IOC 容器。 RegisterType() 方法有一堆重载看起来都类似于 IUnityContainer RegisterType(Type t,
我有一个使用 Unity 的应用程序。在应用程序的一个区域中,代码扫描程序集以使用以下代码注册类型(自动注册): public class CommonRegistry : UnityRegistry
我正在使用 UnityContainer,我想注册一个接口(interface),而不是一个类型,而是另一个接口(interface)。不幸的是,我无法干净地做到这一点.. 我有几个通用的接口(int
我一直在使用 Unity 容器并注意到一个奇怪的行为。我有一个类,它实现了多个接口(interface)。我希望此类在具有不同生命周期的应用程序的不同位置使用。所以我已经将 IFooDerived1
使用 AutoFac 时,您可以使用 .RegisterType 将类与接口(interface)相关联,但您也可以使用 .Register(它允许您通过一个 lambda)。 对于具有无参数构造函数
我正在使用 Unity 实例化一些对象,我发现无论我尝试什么,Unity 都会为我的对象创建单例。 根据文档: http://msdn.microsoft.com/en-us/library/dd20
我需要注册许多类型映射,但对于少数类型映射,我需要使用不同的依赖注入(inject)属性重新注册。 对于 Unity,这似乎是不可能的,并且这似乎是 RegisterType() 的一个错误。 这是一
我正在尝试自动注册存储库: 这行得通,但我不喜欢它,因为在服务层类中,我必须提供具体的 EntityRepository给构造函数而不是提供接口(interface) IRepository publ
我是 Autofac 的新手,我想了解 Web api 2(.Net 框架)中 RegisterInstance 和 RegisterType 之间的区别。在他的文档中有一个简单的 example v
这是我的服务构造函数的样子: public Service(string path) 我正在像这样配置统一: IUnityContainer container = new UnityContaine
我有一个统一的运行代码。 现在我想使用 Moq 对 ASP-MVC 进行单元测试。 在 global.asax 的代码中,我有以下内容: IUnityContainer container = new
我是一名优秀的程序员,十分优秀!