学习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">public</span><span style="color: #000000"> TodayWrite(IOutput output)
{
</span><span style="color: #0000ff">this</span>._output =<span style="color: #000000"> output;
}
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> WriteDate()
{
</span><span style="color: #0000ff">this</span><span style="color: #000000">._output.Write(DateTime.Now.ToShortDateString());
}
} Main(= =
以上是原始实现方式,现在看,它拥有一个合理的关于依赖关系的结构,那么开始搭配Autofac来一起使用吧。 首先,添加下Autofac的引用。 打开工具->选择NuGet包管理器->管理解决方案的NuGet程序包 安装后,不要忘记引用Autofac Autofac;
接下来重构下 Program 类 IContainer Container { ;
</span><span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> Main(<span style="color: #0000ff">string</span><span style="color: #000000">[] args)
{
</span><span style="color: #0000ff">var</span> builder = <span style="color: #0000ff">new</span><span style="color: #000000"> ContainerBuilder();
builder.RegisterType</span><ConsoleOutput>().As<IOutput><span style="color: #000000">();
builder.RegisterType</span><TodayWrite>().As<IDateWrite><span style="color: #000000">();
Container </span>=<span style="color: #000000"> builder.Build();
WriteDate();
Console.Read();
}
</span><span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span><span style="color: #000000"> WriteDate()
{
</span><span style="color: #0000ff">using</span> (ILifetimeScope scope =<span style="color: #000000"> Container.BeginLifetimeScope())
{
</span><span style="color: #0000ff">var</span> write = scope.Resolve<IDateWrite><span style="color: #000000">();
write.WriteDate();
}
}
} 最后贴上 Autofac 的文档地址 :? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- objective-c – 将数据存储在MKAnnotation中?
- 在 FlashDevelop 的移动项目 (Adobe AIR) 中使用 ane
- c – 从libevent移植到boost :: asio:什么是ASIO中libeven
- c – 改变类私人数据成员的顺序会打破ABI
- ruby – 尝试在Jekyll中打印发布日期失败,未定义方法`strft
- React Native Windows 安装方法
- extjs的ajax请求json解析时引号问题
- NoSQL是什么?
- 兼容性IE的Ajax原生Javascript代码
- oracle 12c GI安装详细步骤(oracle 12C + Grid Infrastruc