0
給定一組接口,其中每個接口都有一個具有相同名稱的相應實現類(例如:ISomeThing : SomeThing
),是否有辦法在不創建顯式映射的情況下自動解析所有類?將隱含相同名稱的IoC接口解析爲具有相同名稱的類
有可能是一個IoC容器已經有這個..
給定一組接口,其中每個接口都有一個具有相同名稱的相應實現類(例如:ISomeThing : SomeThing
),是否有辦法在不創建顯式映射的情況下自動解析所有類?將隱含相同名稱的IoC接口解析爲具有相同名稱的類
有可能是一個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>();
}
當然 - 這是從StructureMap這樣一些文檔:http://structuremap.github.io/registration/auto-registration-and-conventions/ – axlj
@axlj,請讓這個與具體的例子回答,我會將其標記爲「已接受」。 – LastTribunal