隐含地将 IoC 接口解析为具有相同名称的 class

Resolve IoC interface to class with same name implicitily

给定一组接口,其中每个接口都有一个相应的同名实现 class(例如:ISomeThing : SomeThing),有没有一种方法可以自动解析所有接口而不创建显式映射?

可能已经有一个 IoC 容器了..

这是 StructureMap 的默认约定。它尝试使用 I[Something]/[Something] 命名约定将具体 类 连接到接口。

    public interface ISpaceship { }

    public class Spaceship : ISpaceship { }

    public interface IRocket { }

    public class Rocket : IRocket { }

    [Fact]
    public void default_scanning_in_action()
    {
       var container = new Container(_ =>
       {
           _.Scan(x =>
           {
            x.Assembly("<AssemblyNameWhereClassesAreDefined>");
            x.WithDefaultConventions();
           });
       });

       var spacesfip = container.GetInstance<ISpaceship>().ShouldBeOfType<Spaceship>();
       var rocket = container.GetInstance<IRocket>().ShouldBeOfType<Rocket>();
    }