加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 22:46:37 所属栏目:百科 来源:网络整理
导读:出处:http://www.cnblogs.com/kissdodog/p/3611447.html Autofac是一个轻量级的依赖注入的框架,同类型的框架还有Spring.NET,Unity,Castle等。 Autofac的使用有一个非常让人郁闷的地方,就是服务器要求安装有Microsoft .NET Framework 4 KB2468871。该补

出处: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 如果不安装,则运行程序会报如下错误:

  

  具体信息可以到这里去查看: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();
}
}
}

复制代码

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

  

  简单解释:

  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常用操作 - 事务、并发锁
下一篇:Autofac 组件、服务、自动装配 《第二篇》

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读