AutoFac是.net程序下一个非常灵活易用,且功能强大的DI框架,本文这里简单的介绍一下使用方法。 安装: Install-Package Autofac 简单的示例: stat
AutoFac是.net程序下一个非常灵活易用,且功能强大的DI框架,本文这里简单的介绍一下使用方法。
Install-Package Autofac
static void Main(string[] args)
{
var builder = new ContainerBuilder();
builder.ReGISterType<ConsoleLogger>().As<ILogger>();
var container = builder.Build();
var logger = container.Resolve<ILogger>();
}
简单的说,AutoFac包括如下两步:
如果有某一接口服务有多个实现,可以用如下方式获取所有服务。
var loggers = container.Resolve<ILogger[]>();
我们也可以通过反射的方式扫描程序集,从而实现自动注册。
var builder = new ContainerBuilder();
builder.RegisterAssemblyTypes(dataAccess)
.Where(t => t.Name.EndsWith("Repository"))
.AsImplementedInterfaces();
虽然做法粗暴,但在一些简单的场景下还是非常快速有效的。
我之前介绍过.net framework下自带的MEF框架,它和autofac的思路还是大不相同的。
AutoFac偏向于服务的抽象,无注入,简洁,透明而且不失强大。
MEF则采用反射的方式,服务的提供由代码注入自动完成,更加自动化,但不够透明,它更侧重于解决一组模块间的互相依赖,耦合关系。它用来拆分用它来分析复杂的UI模块,或者构建插件是非常方便的。
AutoFac本身功能非常强大,这里只是一个简单的入门,更多功能可以参考官方文档。
--结束END--
本文标题: .net中的DI框架AutoFac简单介绍
本文链接: https://www.lsjlt.com/news/153156.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2023-05-21
2023-05-21
2023-05-21
2023-05-21
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0