AutoFac在项目中的应用
技能大全:http://www.cnblogs.com/dunitian/p/4822808.html#skill
完整Demo:https://github.com/dunitian/LoTCodeBase/tree/master/NetCode/3.常用技能/8.AutoFac/1.AutoFac
先看效果
IBLL
IBLL
核心代码:
代码附件:
public ActionResult Index() { ITestBLL testBLL = Container.Resolve<ITestBLL>(); ViewBag.Name = testBLL.GetName(); return View(); } ———————————————————————————————— public interface ITestBLL { string GetName(); } ———————————————————————————————— public class TestBLL : ITestBLL { public string GetName() { return "我为NET狂-官方群① 238575862"; } } ———————————————————————————————— /// <summary> /// Autofac IOC类 /// </summary> public class Container { /// <summary> /// IOC 容器 /// </summary> public static IContainer container = null; public static T Resolve<T>() { try { if (container == null) { Initialise(); } } catch (Exception ex) { throw new Exception("IOC实例化出错!" + ex.Message); } return container.Resolve<T>(); } /// <summary> /// 初始化 /// </summary> public static void Initialise() { var builder = new ContainerBuilder(); //格式:builder.RegisterType<xxxx>().As<Ixxxx>().InstancePerLifetimeScope(); builder.RegisterType<TestBLL>().As<ITestBLL>().InstancePerLifetimeScope(); container = builder.Build(); } }