我有一种情况,一个类的构造函数需要两个实现接口的相同具体类型的实例。这是为了能够使用“任务”来并行运行它们以减少时间。
构造函数代码是这样的:
公共 SomeUsingClass (ISomeDependency someDepOne, ISomeDependency someDepTwo) { }
在这里,我只有一个实现 ISomeDependency 的具体类,即 SomeDependencyClass。
当我获得 SomeUsingClass 的实例时,我必须确保这两个参数都指向 SomeDependencyClass 的不同实例。这是因为,当实例将在两个单独的任务下使用时,它们的“状态”不应与另一个冲突。
我尝试使用 ISomeDependency 的命名实例(将它们命名为“instanceOne”和“instanceTwo”。代码如下所示:
.For<ISomeDependency>().Add<SomeDependency>().Named("instanceOne");
.For<ISomeDependency>().Add<SomeDependency>().Named("instanceTwo");
...然后使用以下内容创建 using 类的实例:
.For<SomeUsingClass>().Use<SomeUsingClass>()
.Ctor<ISomeDependency>("someDepOne")
.IsNamedInstance("instanceOne")
.Ctor<ISomeDependency>("someDepTwo")
.IsNamedInstance("instanceTwo");
这会导致以下错误:
没有注册默认实例,并且无法为类型“ISomeDependency”自动确定。
我曾明确提到要使用带有名称的特定实例。我哪里做错了?