首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

IOC容器相关有关问题

2013-12-19 
IOC容器相关问题我现在用的autofacIOC容器发现一个问题:所有的注册都是在网站启动时注册但是我现在希望在

IOC容器相关问题
我现在用的autofac  IOC容器
发现一个问题:所有的注册都是在网站启动时注册
但是我现在希望在具体页面执行的时候选择某个接口的具体实现
例如:


interface ISay{ 
 string Say(); 
}

class Cat :ISay{
 string Say(){ return "喵"; }
}

class Dog:ISay{
 string Say(){ return "汪"; }
}



我现在页面有个下拉框可以选择猫、狗
当我提交页面的时候会根据下拉框的值通过IOC容器动态的实例化对象给ISay接口

请问这个通过IOC容器可以实现吗 IOC autofac
[解决办法]
 在进行容器注册的时候,可以添加一个名称
builder.Register(cat =>new Cat()).Named<ISay>("Cat");
builder.Register(dog=>new Dog()).Named<ISay>("Dog");
IContainer container = builder.Build();

获取时候可以可能通过名称来获取
container.ResolveNamed<ISay>("Cat/Dog");

热点排行