据IOC性能测试排名,DryIoc是目前运行性能最好的依赖注入组件。 详情参考:https://bitbucket.org/dadhi/dryioc/
下面一步一步搭建我们的DryIoc 的mvc项目。
1. Install Package
PM> install-package dryioc.mvc
2. Global.asax.cs Application_start() 填加
IContainer c = new Container();
// 这里需要引用DryIoc.Mvc命名空间
c = DryIocMvc.WithMvc(c);
//动态注册服务
var impls = Assembly.GetAssembly(typeof(UserService)).GetTypes().Where(
type=>type.IsPublic &&
!type.IsAbstract &&
type.GetInterfaces().Length != 0 &&
type.Name.EndsWith("Service"));
foreach(var service in impls)
{
foreach(var interface1 in service.GetInterfaces())
{
c.Register(interface1, service, Reuse.Singleton);
}
}
代码实现省略了, 其原则就是通过类的构造函数去注入接口实现。