隐含地将 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>();
}
给定一组接口,其中每个接口都有一个相应的同名实现 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>();
}