AutoFac 简单好用的IOC

本文介绍如何使用Autofac进行模块化编程,包括安装Autofac、定义接口和实现类、编写Autofac模块、注册并运行测试等步骤。通过这种方式可以实现职责隔离,便于后续维护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


0. 安装autofac的nuget




1. 准备测试接口和类


class BallGame : IPlay
    {
        public void Do()
        {
            Console.WriteLine("ball game");
            Console.Read();
        }
    }


    class ComputerGame : IPlay
    {
        public void Do()
        {
            Console.WriteLine("computer game.");
            Console.Read();
        }
    }


    interface IPlay
    {
        void Do();
    }



2. 编写autofac模块
class PlayModule : Module
    {
        protected override void Load(ContainerBuilder builder)
        {
            builder.RegisterType(typeof(ComputerGame)).As(typeof(IPlay)).InstancePerLifetimeScope();
        }
    }




这样的设计是主张模块化编程,把职责隔离到不同的dll,这样之后更新起来只需要替代指定dll即可。


3. 注册autofac模块,运行测试


var builder = new ContainerBuilder();
builder.RegisterModule(new PlayModule());
var container = builder.Build();
//container.Resolve<IPlay>().Do();
using (var scope = container.BeginLifetimeScope())
{
      var play = scope.Resolve<IPlay>();
      play.Do();
}



先创建一个builder,然后注册模块,最后builder调用Build函数返回container对象。
接下来可以选择性的控制对象的生命周期。


4.完成测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值