您的位置:首页 > 其它

AutoFac 简单好用的IOC

2016-03-01 14:53 337 查看
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.完成测试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: