C# structuremap会自动在子目录中查找缺少的实现

C# structuremap会自动在子目录中查找缺少的实现,c#,dependency-injection,structuremap,C#,Dependency Injection,Structuremap,是否可以将StructureMap指向包含具体实现(每个接口一个具体实现)的子目录,并让StructureMap自动连接具体类,而无需在ObjectFactory中声明接口。初始化(y=>y.Scan…?可以(假设您遵循某种命名约定) 例如: 接口命名约定:IName(IA、IB) 接口实现的命名约定:名称(A,B) 上述命名约定在SM中称为默认约定 然后,您可以使用如下默认约定进行扫描: ObjectFactory.Initialize(x => { x

是否可以将StructureMap指向包含具体实现(每个接口一个具体实现)的子目录,并让StructureMap自动连接具体类,而无需在ObjectFactory中声明接口。初始化(y=>y.Scan…?

可以(假设您遵循某种命名约定)

例如:

接口命名约定:IName(IA、IB)

接口实现的命名约定:名称(A,B)

上述命名约定在SM中称为默认约定

然后,您可以使用如下默认约定进行扫描:

ObjectFactory.Initialize(x => 
                { x.Scan(
                      scan =>
                      {
                          scan.AssembliesFromPath(Environment.CurrentDirectory + @"\Impl" ); //location of assemblies with interfaces implementation
                          scan.WithDefaultConventions();
                      }
                    );
                });
如果您需要更复杂的映射规则,那么您可以实现自己的约定

以下是有关此主题的更多信息:

以下是示例解决方案: