using System;@H_404_4@using System.Collections.Generic;@H_404_4@using System.Linq;@H_404_4@using System.Text;@H_404_4@using Autofac.Builder;@H_404_4@using Autofac.Configuration;@H_404_4@using Autofac;@H_404_4@/// by rhythmk@H_404_4@namespace AutofacApp@H_404_4@{@H_404_4@ class Program@H_404_4@ {@H_404_4@ static void Main(string[] args)@H_404_4@ {@H_404_4@ var builder = new ContainerBuilder();@H_404_4@ builder.RegisterType<DBManage>();@H_404_4@ builder.RegisterType<sqlDB>().As<IDataBase>();@H_404_4@ //using (var container=builder.Build(ContainerBuildOptions.Default))@H_404_4@ //{@H_404_4@ var container = builder.Build(ContainerBuildOptions.Default);@H_404_4@ var manage = container.Resolve<DBManage>();@H_404_4@ manage.Select();@H_404_4@ manage.Update();@H_404_4@ //}@H_404_4@ Console.ReadKey();@H_404_4@ }@H_404_4@ }@H_404_4@@H_404_4@@H_404_4@ public interface IDataBase@H_404_4@ {@H_404_4@ void Update();@H_404_4@ void Select();@H_404_4@ }@H_404_4@@H_404_4@ public class sqlDB : IDataBase@H_404_4@ {@H_404_4@@H_404_4@ #region IDataBase 成员@H_404_4@@H_404_4@ public void Update()@H_404_4@ {@H_404_4@ Console.WriteLine("sqlDB Update");@H_404_4@ }@H_404_4@@H_404_4@ public void Select()@H_404_4@ {@H_404_4@ Console.WriteLine("sqlDB Select");@H_404_4@ }@H_404_4@@H_404_4@ #endregion@H_404_4@ }@H_404_4@ public class MysqLDB : IDataBase@H_404_4@ {@H_404_4@@H_404_4@ #region IDataBase 成员@H_404_4@@H_404_4@ public void Update()@H_404_4@ {@H_404_4@ Console.WriteLine("MysqLDB Update");@H_404_4@ }@H_404_4@@H_404_4@ public void Select()@H_404_4@ {@H_404_4@ Console.WriteLine("MysqLDB Select");@H_404_4@ }@H_404_4@@H_404_4@ #endregion@H_404_4@ }@H_404_4@@H_404_4@ public class DBManage@H_404_4@ {@H_404_4@ private IDataBase _dataBase;@H_404_4@@H_404_4@ public DBManage(IDataBase m_dataBase)@H_404_4@ {@H_404_4@ this._dataBase = m_dataBase;@H_404_4@ }@H_404_4@@H_404_4@ public void Update()@H_404_4@ {@H_404_4@ this._dataBase.Update();@H_404_4@ }@H_404_4@@H_404_4@ public void Select()@H_404_4@ {@H_404_4@ this._dataBase.Select(); } }}