Structuremap 当存在多个实例时,如何在构造函数中检索特定实例

Structuremap 当存在多个实例时,如何在构造函数中检索特定实例,structuremap,structuremap4,Structuremap,Structuremap4,我使用的是structuremap 4.5.1。我有两个接口实例,我需要知道如何在构造函数中检索特定的实例。所以在本例中,我有一个类需要接口的一个实例,然后我有一个不同的类需要接口的第二个实例,而不是第一个实例。由于接口通常在多个类中实现,我觉得这应该是一个常见的场景,但我不知道如何实现 我在文档中发现了一个称为“命名实例”的概念,因此我本以为这就是解决方案,但它不起作用 这是我的注册表: For<IFileWatcher>().Add<Watcher>().Na

我使用的是structuremap 4.5.1。我有两个接口实例,我需要知道如何在构造函数中检索特定的实例。所以在本例中,我有一个类需要接口的一个实例,然后我有一个不同的类需要接口的第二个实例,而不是第一个实例。由于接口通常在多个类中实现,我觉得这应该是一个常见的场景,但我不知道如何实现

我在文档中发现了一个称为“命名实例”的概念,因此我本以为这就是解决方案,但它不起作用

这是我的注册表:

    For<IFileWatcher>().Add<Watcher>().Named("fileWatcher");
    For<IFileWatcher>().Add<InboundWatcher>().Named("inboundWatcher");

    For<IFileWatcher>().Use<Watcher>();
private readonly IFileWatcher _fileWatcher;

public InboundWatcherController(IFileWatcher inboundWatcher) //<-- notice the name is the same as in my registry
{
    _watcher = inboundWatcher; //<-- this is set to an instance of "Watcher", instead of "InboundWatcher" even though the name of the parameter is "inboundWatcher"
}
For().Add().Named(“fileWatcher”);
For().Add().Named(“inboundWatcher”);
For().Use();
这是我的构造函数,它不起作用(当我说它不起作用时,我的意思是structuremap只提供默认实例,即使我将构造函数参数命名为注册表中的参数):

private readonly IFileWatcher\u fileWatcher;
公共inboundWatcher控制器(IFileWatcher inboundWatcher)//