首页 > 作文

.NET中IoC框架Autofac用法讲解

更新时间:2023-04-04 12:43:30 阅读: 评论:0

1 前置阅读

在阅读本文章之前,你可以先阅读:

2 简介

autofac与c#语言的结合非常紧密,并学习它非常的简单,也是.net领域最为流行的ioc框架之一。

3 使用

首先,将autofac的nuget软件包安装到您的应用程序中。

autofac

然后,我们通过创建containerbuilder来注册组件。

var builder = new containerbuilder();builder.registertype<knife>();builder.registertype<actor>();

接着,可以通过在一个已存在的生命周期上调用 beginlifetimescope() 方法来创建另一个生命周期作用域, 以根容器作为起始。生命周期作用域是可释放的并且追踪组件的释放, 因此确保你总是调用了 “dispo()”” 或者把它们包裹在 “using” 语句内。

using (var scope = container.beginlifetimescope()){}

最后,在注册完组件并暴露相应的服务后, 你可以从创建的容器或其子生命周期中解析服务. 让我们使用 resolve() 方法来实现:

using (var scope = container.beginlifetimescope()){    var actor = scope.resolve<actor>();    actor.kill();}

让我们来看看完整代码:

using system;namespace autofac.consoleapp{    class program    {      上能  static void main(string[] args)        {            var builder = new contai国际日期变更线nerbuilder();            builder.registertype<knife>();            builder.registertype<actor>();            var container = builder.build();            using (var scope = container.beginlifetimescope())            {                var actor = scope.resolve<actor>();                actor.kill();            }            console.readkey();        }    }}

让我们来看看输出结果:

小明用刀杀怪

4 在 asp.net core 中使用

首先,将autofac,autofac.extensions.dependencyinjection的nuget软件包安装到您的应用程序中。

dotnet add package autofacdotnet add package autofac.extensions.dependencyinjection

然后,在program.main中增加.urviceproviderfactory(new autofacrviceproviderfactory())

public static ihostbuilder createhostbuilder(string[] args) =>    host.createdefaultbuilder(args)        .configurewebhostdefaults(webbuilder =>        {            webbuilder.ustartup<startup>();        })        .urviceproviderfactory(new autofacrviceproviderfactory());

接着,在startup.configurervices中增加rvices.addcontrollerswithviews();

public void configurervices(irvicecollection rvices){    rvices.addcontrollers();    rvices.addswaggergen(c =&张嘉佳作品gt;    {        c.swaggerdoc("v1", new openapiinfo { title = "autofac.webapi", version = "v1" });    });    rvices.addcontrollerswithviews();}

接着,在startup.configurecontainer方法中,将knife,actor注册到autofac中containerbuilder。

public void configurecontainer(containerbuilder builder){    builder.registertype<knife>();    builder.registertype<actor>();}

最后,增加homecontroller,执行actor.kill。

using microsoft.aspnetco电子表格学习re.mvc;using system;namespace autofac.webapi.controllers{    [route("[controller]")]    [apicontroller]    public class homecontroller : controller    {        private readonly actor actor;        public homecontroller(actor actor)        {            this.actor = actor ?? throw new argumentnullexception(nameof(a雨露作文ctor));        }        [httpget]        public string get()        {            return actor.kill();        }    }}

启动调试,让我们来看看输出结果:

小明用刀杀怪

到此这篇关于.net中ioc框架autofac用法讲解的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 12:43:28,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/da46186b2933f1d7d5754cd8c9fe4f39.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:.NET中IoC框架Autofac用法讲解.doc

本文 PDF 下载地址:.NET中IoC框架Autofac用法讲解.pdf

相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图