关于使用 autoFac 的注入方法

摘要:
1.要使用NUGET安装Autofac2,需要参考AutofacASP NETMVC5Integration。但有时在NuGet中找不到该包。您需要使用“程序到控制器控制台”来安装、输入、安装和解决问题。安装InstallPackageAutofac.Mvc5-Version4.0.2后,有许多对Autofac的引用。dll和Autofac.Intergration.MVC。如果它们在webApi中使用

1、使用 NUGET 安装 Autofac

关于使用 autoFac 的注入方法第1张

2、需要引用Autofac ASP.NET MVC 5 Integration  这个扩展包。

但有时候在NuGet中找不到 该包 需要使用“程序要控制器控制台”安装

输入  安装解决

 Install-Package Autofac.Mvc5 -Version 4.0.2

关于使用 autoFac 的注入方法第2张

安装完成后引用里面就多了Autofac.dll和Autofac.Intergration.MVC,如果是在webApi里使用Autofac需要安装Autofac ASP.NET Web API2.2 Intergration 才可以。

install-package autofac.webapi2

  

 3、使用方法,以下方式引用  https://www.cnblogs.com/zjoch/p/6485170.html 博客

新建一个person实体类

public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        public string Address { get; set; }
    }

新建一个person仓储接口

public interface IPersonRepository
    {
        IEnumerable<Person> GetAll();
        Person Get(int id);
        Person Add(Person item);
        bool Update(Person item);
        bool Delete(int id);
    }

新建一个person仓储

public class PersonRepository : IPersonRepository
    {
        List<Person> person = new List<Person>();

        public PersonRepository()
        {
            Add(new Person { Id = 1, Name = "joye.net1", Age = 18, Address = "中国上海" });
            Add(new Person { Id = 2, Name = "joye.net2", Age = 18, Address = "中国上海" });
            Add(new Person { Id = 3, Name = "joye.net3", Age = 18, Address = "中国上海" });
        }
        public IEnumerable<Person> GetAll()
        {
            return person;
        }
        public Person Get(int id)
        {
            return person.Find(p => p.Id == id);
        }
        public Person Add(Person item)
        {
            if (item == null)
            {
                throw new ArgumentNullException("item");
            }
            person.Add(item);
            return item;
        }
        public bool Update(Person item)
        {
            if (item == null)
            {
                throw new ArgumentNullException("item");
            }

            int index = person.FindIndex(p => p.Id == item.Id);
            if (index == -1)
            {
                return false;
            }
            person.RemoveAt(index);
            person.Add(item);
            return true;
        }
        public bool Delete(int id)
        {
            person.RemoveAll(p => p.Id == id);
            return true;
        }
    }

Global属性注入

public class MvcApplication : System.Web.HttpApplication
    {
        private void SetupResolveRules(ContainerBuilder builder)
        {
            builder.RegisterType<PersonRepository>().As<IPersonRepository>();
        }
        protected void Application_Start()
        {
            var builder = new ContainerBuilder();
            SetupResolveRules(builder);
            builder.RegisterControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired();
            var container = builder.Build();
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }

效果图

关于使用 autoFac 的注入方法第3张

免责声明:文章转载自《关于使用 autoFac 的注入方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇RISC-V与DSA计算机架构Taptic Engine初探下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

NopCommerce架构分析之一----依赖类生成容器

NopCommerce为了实现松耦合的框架设计目的,使用了IOC框架:Autofac。据有人测试,Autofac是性能好的IOC工具。 1、在IOC中,组件首先需要在IOC中注册,有通过配置文件注册的,像Spring.net,也有通过特性注册的,像StructureMap,也有通过代理来注册的,像Autofac。但是IOC讲究一个原则,就是接口和实现分离。...

Autofac系列一、注册

一、注册概念 我们通过创建ContainerBuilder来注册组件并告诉容器哪些组件暴露了哪些服务。 组件可以通过反射(注册指定的.net类或开发结构的泛型)创建;通过提供现成的实例(你已创建的一个对象实例)创建,或者通过lambda表达式(一个执行实例化对象的匿名方法)来创建ContainerBuilder包含一组Register()方法来帮你实现以上...

Autofac在.NetCore 下的使用

在工作开发中很多地方都会使用到接口模式开发,这里就会用到依赖注入,.NetCore目前是自带的 ,在 Startup.cs中的 ConfigureServices方法中增加 本篇文章仅支持 3.0版本以下core 1 public void ConfigureServices(IServiceCollection services) 2...

Autofac系列二、解析服务

一、解析服务 在注册完组件并暴露相应的服务后,可以从创建的容器或其子生命周期中解析服务,让我们使用Resolve()方法来实现: var builder = new ContainerBuilder(); builder.RegisterType<MyComponent>().As<IService>(); var containe...

[翻译] Autofac 中注册的概念

原文链接:http://docs.autofac.org/en/latest/register/registration.html 所谓注册组件,是指创建 ContainerBuilder 的实例,并告诉它哪些组件暴露哪些服务。 组件可以用反射创建,可以提供已经创建好的对象的实例,还可以用拉姆达表达式创建。ContainerBuilder 有一组 Regi...

依赖注入框架Autofac的简单使用

Autofac是一款IOC框架,比较于其他的IOC框架,如Spring.NET,Unity,Castle等等所包含的,它很轻量级性能上也是很高的。于是,今天抽空研究了下它。下载地址:http://code.google.com/p/autofac/downloads/list 1)解压它的压缩包,主要看到Autofac.dll,Autofac.Config...