zoukankan      html  css  js  c++  java
  • Autofac依赖注入之AuthorizeAttribute属性注入---.net framework 4.5 Mvc5 WebApi

    1、Webapi框架下使用Autofac属性注入之----AuthorizeAttribute的属性注入

     public class MyAuthorizeAttribute : AuthorizeAttribute
        {

           public MyLog log { get; set; } //autofac注入的属性
            protected override void HandleUnauthorizedRequest(HttpActionContext filterContext)
            {

                    log.Message("验证信息...");

            }

    }

    2、在WebApiConfig.cs文件中添加配置代码:

      public static class WebApiConfig
        {
            public static void Register(HttpConfiguration config)
            {
                // Web API 配置和服务

                // Web API 路由
                config.MapHttpAttributeRoutes();
                //config.Routes.MapHttpRoute(
                //    name: "DefaultApi",
                //    routeTemplate: "api/{controller}/{id}",
                //    defaults: new { id = RouteParameter.Optional }
                //);
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{action}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );

                //依赖注入初始化
                AutofacBuilder.Init(config);
            }
        }

    3、新建一个autofac依赖注入配置文件:AutofacBuilder.cs

     public class AutofacBuilder
      {
            public static void Init(HttpConfiguration config)
            {
                ContainerBuilder builder = new ContainerBuilder();
                builder.RegisterControllers(Assembly.GetExecutingAssembly());
                builder.RegisterApiControllers(Assembly.GetExecutingAssembly());


                builder.RegisterType<MyLog>().As<MyLog>(); //MyLog也可以写成接口 ==>> builder.RegisterType<MyLog>().As<IMyLog>();

                //builder.RegisterFilterProvider();

                builder.RegisterWebApiFilterProvider(config);


                builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()).AsImplementedInterfaces().AsSelf();
                var container = builder.Build();
                DependencyResolver.SetResolver(new AutofacDependencyResolver(container));            
                config.DependencyResolver = new AutofacWebApiDependencyResolver(container);        
            }
     }

  • 相关阅读:
    【codevs1690】开关灯 (线段树 区间修改+区间求和 (标记))
    【codevs1191】数轴染色 (线段树 区间修改+固定区间查询)
    【机器学习】李航 统计学习方法 知识点总结
    【机器学习】生成模型 判别模型
    【机器学习】贝叶斯定理、精准推断、最大似然估计、连续特征参数估计、EM算法
    python queue 讲解
    【tensorflow】 CNN卷积神经网络原理讲解+图片识别应用(附源码)
    URL解析过程
    Python 可迭代对象迭代器生成器的区别
    【Linux】 修改主机名
  • 原文地址:https://www.cnblogs.com/pzxnet/p/12856413.html
Copyright © 2011-2022 走看看