Autofac 解释第一个例子 《第一篇》

前端之家收集整理的这篇文章主要介绍了Autofac 解释第一个例子 《第一篇》前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

出处:http://www.cnblogs.com/kissdodog/p/3611447.html


Autofac是一个轻量级的依赖注入的框架,同类型的框架还有Spring.NET,Unity,Castle等。

  Autofac的使用有一个非常让人郁闷的地方,就是服务器要求安装有Microsoft .NET Framework 4 KB2468871。该补丁的地址是:http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=3556 如果不安装,则运行程序会报如下错误

  

403/191459183186008.jpg">

  具体信息可以到这里去查看:https://code.google.com/p/autofac/wiki/FrequentlyAskedQuestions

  这篇文章以一个最简单的例子,开始Autofac的学习:

复制代码

namespaceConsoleApplication3
{classProgram
{staticvoidMain(string[]args)
{ContainerBuilderbuilder=newContainerBuilder();
builder.RegisterType<AutoFacManager>();
builder.RegisterType<Worker>().As<IPerson>();using(IContainercontainer=builder.Build())
{AutoFacManagermanager=container.Resolve<AutoFacManager>();
manager.Say();
}

Console.ReadKey();
}
}publicinterfaceIPerson
{voidSay();
}publicclassWorker:IPerson
{publicvoidSay()
{
Console.WriteLine("我是一个工人!");
}
}publicclassStudent:IPerson
{publicvoidSay()
{
Console.WriteLine("我是一个学生!");
}
}publicclassAutoFacManager
{IPersonperson;publicAutoFacManager(IPersonMyPerson)
{
person=MyPerson;
}publicvoidSay()
{
person.Say();
}
}
}

复制代码

  以上例子,是一个最简单的例子,输出如下:

  

403/191517241462016.jpg">

  简单解释:

  1、ContainerBuilder类型的作用

    组件通过ContainerBuilder的对象注册

  2、组件

    对象需要从组件中来获取,比如例子中的Worker类的实例就需要从组件中获取

  3、哪些实例可以作为组件

  • Lambda表达式

  • 一个类型

  • 一个预编译的实例

  • 实例类型所在的程序集

  4、容器

    ContainerBuilder的Build()方法可以创建容易,从容器的Resolve()方法能够获得对象。

  5、为了指定组件服务是某一接口

    As()方法将用于注册时之指定:builder.RegisterTye<TaskController>().As<TController>();
  6、组件的依赖关系

    组件的依赖关系主要通过接口实现,如Worker:IPerson

分类:框架:Autofac

绿色通道:好文要顶关注我收藏该文与我联系

逆心
关注 - 23
粉丝 - 164

+加关注

0

0

(请您对文章做出评价)

上一篇ServiceStack.Redis常用操作 - 事务、并发锁
@L_404_16@下一篇Autofac 组件、服务、自动装配 《第二篇》

原文链接:https://www.f2er.com/javaschema/285355.html

猜你在找的设计模式相关文章