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

学习Autofac的过程

发布时间:2020-12-15 04:45:34 所属栏目:百科 来源:网络整理
导读:今天记录一下学习Autofac的过程。 之前对IoC与DI一直很迷糊,今天研究了前辈们的文章后,才对IoC和DI有了一个初步的了解。感谢前辈们的无私奉献! 文章地址: ? ? 什么鬼?明明是记录Autofac的基本使用。。。 好吧,回到主题。 首先,构建好一个时间输出的程

今天记录一下学习Autofac的过程。

之前对IoC与DI一直很迷糊,今天研究了前辈们的文章后,才对IoC和DI有了一个初步的了解。感谢前辈们的无私奉献!

文章地址:

? ?    

什么鬼?明明是记录Autofac的基本使用。。。

好吧,回到主题。

首先,构建好一个时间输出的程序:

Write(
Write(
</span><span style="color: #0000ff"&gt;public</span><span style="color: #000000"&gt; TodayWrite(IOutput output) { </span><span style="color: #0000ff"&gt;this</span>._output =<span style="color: #000000"&gt; output; } </span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; WriteDate() { </span><span style="color: #0000ff"&gt;this</span><span style="color: #000000"&gt;._output.Write(DateTime.Now.ToShortDateString()); }

}

Main(= =

以上是原始实现方式,现在看,它拥有一个合理的关于依赖关系的结构,那么开始搭配Autofac来一起使用吧。

首先,添加下Autofac的引用。

打开工具->选择NuGet包管理器->管理解决方案的NuGet程序包

安装后,不要忘记引用Autofac

Autofac;

接下来重构下 Program 类

IContainer Container { ; </span><span style="color: #0000ff"&gt;static</span> <span style="color: #0000ff"&gt;void</span> Main(<span style="color: #0000ff"&gt;string</span><span style="color: #000000"&gt;[] args) { </span><span style="color: #0000ff"&gt;var</span> builder = <span style="color: #0000ff"&gt;new</span><span style="color: #000000"&gt; ContainerBuilder(); builder.RegisterType</span><ConsoleOutput>().As<IOutput><span style="color: #000000"&gt;(); builder.RegisterType</span><TodayWrite>().As<IDateWrite><span style="color: #000000"&gt;(); Container </span>=<span style="color: #000000"&gt; builder.Build(); WriteDate(); Console.Read(); } </span><span style="color: #0000ff"&gt;static</span> <span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; WriteDate() { </span><span style="color: #0000ff"&gt;using</span> (ILifetimeScope scope =<span style="color: #000000"&gt; Container.BeginLifetimeScope()) { </span><span style="color: #0000ff"&gt;var</span> write = scope.Resolve<IDateWrite><span style="color: #000000"&gt;(); write.WriteDate(); } }

}

最后贴上 Autofac 的文档地址 :?

(编辑:李大同)

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

    推荐文章
      热点阅读