首页 > 其他分享 >winform使用依赖注入框架Autofac的一些记录

winform使用依赖注入框架Autofac的一些记录

时间:2025-01-18 16:43:04浏览次数:1  
标签:Autofac 依赖 框架 DAL builder BLL 注入 winform

由于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

相关文章

  • SpringCloudAlibaba:从0搭建一套快速开发框架-06 告别重复代码,使用Freemarker轻松生成
    序言:上篇主要优化完善公共模块,本篇主要创建一个生成代码的独立模块,提升开发效率,避免繁琐的重复的crud操作。由于内容较多,我就分两节写了。本节我们主要以创建项目并简单的生成数据库实体类即可,下节我们会直接搞完。Freemarker是什么Freemarker是一个基于Java的模板引擎......
  • 计算机毕业设计Springboot线上花店网站系统 基于Spring Boot框架的在线花店平台开发 S
    计算机毕业设计Springboot线上花店网站系统483y662f(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着互联网的飞速发展,电子商务模式深刻改变了人们的购物习惯。在众多商品中,鲜花因其独特的美丽与情感寓意,成为人们表达心意的热门......
  • 计算机毕业设计Springboot新能源产品管理系 基于Springboot的新能源产品全生命周期管
    计算机毕业设计Springboot新能源产品管理系统94pp5688(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着全球能源危机和环境问题的日益严重,各国政府纷纷提出新能源发展战略,以降低对化石能源的依赖,减少温室气体排放,实现可持续发展......
  • 计算机毕业设计Springboot少儿陪护系统的研究与实现 基于Springboot框架的少儿陪护平
    计算机毕业设计Springboot少儿陪护系统的研究与实现69vd93i4(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着社会的发展和家庭结构的变化,儿童看护问题日益凸显,传统的看护方式已难以满足现代家庭的需求。科技的进步为解决这一问......
  • 计算机毕业设计Springboot奶茶店销售管理系统设计 基于Springboot的奶茶店销售管理系
    计算机毕业设计Springboot奶茶店销售管理系统设计c1bs36ep(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着现代生活节奏的加快和消费者偏好的持续演变,奶茶店作为流行的饮品消费场所,其市场竞争激烈,同时面临着多样化和个性化的消......
  • 深度学习框架大比拼:TensorFlow vs PyTorch,亦菲彦祖的选择
    深度学习框架大比拼:TensorFlowvsPyTorch,亦菲彦祖的选择亲爱的亦菲彦祖,欢迎来到这次的深度学习框架擂台!在我们之前的讨论中,你已经学习了深度学习的核心概念、神经网络的基本原理、卷积神经网络(CNN)和循环神经网络(RNN)等技术。但要想真正落地实践,还需要一个合适、易用且高效的深......
  • Hibernate框架:简化数据持久化的强大工具
            在软件开发领域,数据持久化是一个核心问题,它关乎应用程序如何高效、安全地存储和检索数据。Hibernate,作为一款开源的对象关系映射(ORM)框架,自其诞生以来,便以其强大的功能和灵活的架构赢得了广泛的赞誉。本文旨在深入浅出地介绍Hibernate框架,探讨其如何简化数据持......
  • 前端GIS三维开发必备——WebGL&Three&Cesium知识框架
    WebGL知识框架以下是一个关于WebGL知识框架,从入门到进阶的详细详解,帮助你系统性学习WebGL开发。该框架分为基础、核心、进阶、优化与工具四个部分。ICE图形学社区一、基础知识1.什么是WebGLWebGL定义与用途基于OpenGLES2.0的JavaScriptAPI用于在浏览......
  • 计算机毕业设计Springboot体检套餐定制系统 基于Springboot的个性化体检方案定制平台
    计算机毕业设计Springboot体检套餐定制系统0jk52518(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着生活节奏的加快,人们对健康的关注度日益提升,传统的体检模式已难以满足多样化的健康需求。在此背景下,一款能够根据个人健康状况......
  • 高级java每日一道面试题-2025年01月16日-框架篇[Mybatis篇]-说说Mybatis的缓存机制?
    如果有遗漏,评论区告诉我进行补充面试官:说说Mybatis的缓存机制?我回答:在Java高级面试中,MyBatis的缓存机制是一个重要的话题。MyBatis是一个流行的Java持久化框架,它提供了强大的数据库访问能力和灵活的SQL映射配置。为了提高查询性能并减少数据库访问次数,MyBatis引入了......