1) 创建接口项目和实现类项目; 编写接口,编写实现类。
接口类库
namespace MyIBLL { public interface IUserBll { bool Check(string username, string pwd); void AddNew(string username, string pwd); } }
实现接口类库
namespace MyBLLImpl { public class UserBll : IUserBll { public void AddNew(string username, string pwd) { Console.WriteLine("新增用户,username="+username); } public bool Check(string username, string pwd) { Console.WriteLine("检查用户,username=" + username); return true; } } }
使用 安装 Install-Package Autofac
class Program { static void Main(string[] args) { //IUserBll bll = new UserBll(); //bll.AddNew("aaa", "123"); ContainerBuilder builder = new ContainerBuilder(); //把UserBll注册为IUserBll的一个实现类 builder.RegisterType<UserBll>().As<IUserBll>(); IContainer container = builder.Build(); //创建IUserBll实现类的对象 IUserBll bll = container.Resolve<IUserBll>();//new UserBll bll.AddNew("aaa", "132"); Console.WriteLine("ok"); Console.ReadKey(); } }
或者将整个程序集都加载也可以实现
namespace ZSZ.Tests { class Program { static void Main(string[] args) { //IUserBll bll = new UserBll(); //bll.AddNew("aaa", "123"); ContainerBuilder builder = new ContainerBuilder(); #region 单个加载实现类 //把UserBll注册为IUserBll的一个实现类 //builder.RegisterType<UserBll>().As<IUserBll>(); //IContainer container = builder.Build(); //创建IUserBll实现类的对象 //IUserBll bll = container.Resolve<IUserBll>();//new UserBll //bll.AddNew("aaa", "132"); #endregion //加载程序集 类库MyBLLImpl Assembly asm = Assembly.Load("MyBLLImpl"); //注册到autofac中 builder.RegisterAssemblyTypes(asm).AsImplementedInterfaces(); IContainer container = builder.Build(); //创建IUserBll实现类的对象 IUserBll bll = container.Resolve<IUserBll>();//new UserBll bll.AddNew("aa", "123"); Console.WriteLine("ok"); Console.ReadKey(); } } }