由于winform的framework框架无法实现core那样的依赖注入,必须借助于依赖注入框架来实现。
此次使用Autofac,由于DAL被BLL引用,而BLL又被主程序引用,所以在framework里要实现依赖注入,主程序必须引用DAL和BLL,才可以在主程序里面对DAL和BLL进行注册,这又违背了解耦的原则,所以只能在BLL和主程序之间是用依赖注入,这样意义也不是特别大。
主程序代码示例:
internal static class Program { public static IContainer Container { get; set; } /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { //初始化Autofac //1、实例化注入的容器 ContainerBuilder builder = new ContainerBuilder(); //2、添加依赖解析 //添加数据库上下文注册,此处采用全局静态变量的方式 // Register SqlSugarClient as a singleton //builder.Register(c => SqlSugarConfig.GetInstance()).As<SqlSugarClient>().SingleInstance(); //添加DAL注册,由于DAL被BLL引用,故不在此处注入 //添加BLL注册 builder.RegisterType<CostXinnuoBLL>().As<ICostXinnuoBLL>().InstancePerDependency(); //注册窗体 builder.RegisterType<FrmMain>().AsSelf().InstancePerDependency(); Container = builder.Build(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //Application.Run(new FrmQuotationSystem()); Application.Run(Container.Resolve<FrmMain>()); } }
标签:Autofac,依赖,框架,DAL,builder,BLL,注入,winform From: https://www.cnblogs.com/wy596751073/p/18678589