windows服務/winform中使用Autofac依賴注入


其實Windows服務使用autofac注入很簡單,只需要簡單的配置然后調用Build就可以。以下代碼winform中同樣可以用

/*

.Net framework 4.5

Autofac 4.9.4.0

EF 6

App.config 中connectionStrings的配置和winform一樣

*/

----AutofacBuilder.cs

public  class AutofacBuilder
    {
        private static IContainer _container; 
        public static void init()
        {  
            ContainerBuilder builder = new ContainerBuilder();  
            //配置接口依賴
//            builder.RegisterType<MyDbContext>().As<DbContext>(); //EF依賴注入 
//            builder.RegisterType<Service1>().As<Service1>(); //這一句可以不要,因為下面已經把當前程序集下的類注入了ico容器
          
            //注冊當前程序集的所有類成員
            builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly())
                .AsImplementedInterfaces().AsSelf();

            _container = builder.Build();  //只有在Build之后,才能調用GetFromFac
        }
        public static T GetFromFac<T>()
        {
            return _container.Resolve<T>();
        }
    }

 

-----Program.cs

 

 static class Program
    {
        /// <summary>
        /// 應用程序的主入口點。
        /// </summary>
        static void Main()
        {

            //windows服務初始化工作
            AutofacBuilder.init();
          
            var srv1=AutofacUtil.GetFromFac<Service1>(); //獲取服務Service1
            ServiceBase.Run(srv1);
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM