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