zoukankan      html  css  js  c++  java
  • 关于使用 autoFac 的注入方法

    1、使用 NUGET 安装 Autofac

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

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

    输入  安装解决

     Install-Package Autofac.Mvc5 -Version 4.0.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);
            }
        }

    效果图

  • 相关阅读:
    win10安装mxnet cuda9.0-gpu版
    win10下安装pytorch,torchvision
    python:Non-ASCII character ‘xe2′ in file
    win10与子系统ubuntu之间互访文件
    Spyder更改默认工作路径已经文件路径
    tensorflow读取jpg格式图片报错 ValueError: Only know how to handle extensions: ['png']; with Pillow installed matplotlib can handle more images
    Anaconda中spyder 安装tensorflow
    深度学习---预训练
    机器学习(深度学习)为什么需要训练,训练出来的模型具体又是什么?
    中本聪比特币论文
  • 原文地址:https://www.cnblogs.com/jerrywublogs/p/10621379.html
Copyright © 2011-2022 走看看