其實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);
        }
    }
