zoukankan      html  css  js  c++  java
  • MVC Controller构造器注入

    UnityDependencyResolver 的标准写法

    public class UnityDependencyResolver : IDependencyResolver

    {
        private readonly IUnityContainer _unityContainer;
     
        public UnityDependencyResolver(IUnityContainer unityContainer)
        {
            _unityContainer = unityContainer;
        }
     
        public object GetService(Type serviceType)
        {
            return (serviceType.IsClass && !serviceType.IsAbstract) ||
                _unityContainer.IsRegistered(serviceType) ?
                _unityContainer.Resolve(serviceType) : null;
        }
     
        public IEnumerable GetServices(Type serviceType)
        {
            return (serviceType.IsClass && !serviceType.IsAbstract) ||
                _unityContainer.IsRegistered(serviceType) ?
                _unityContainer.ResolveAll(serviceType) : new object[] {};
        }
    }
     
    Global.asax
    protected void Application_Start()最后加入下面代码

    IUnityContainer container = new UnityContainer();
    container.RegisterType<IServiceA, ServiceA>();
    container.RegisterType<IServiceB, ServiceB>();
    container.RegisterType<IViewPageActivator, ViewPageActivator>();
    DependencyResolver.SetResolver(new UnityDependencyResolver(container));

    MVC Controllerl里的定义(构造器函数注入实现)

    public class HomeController : Controller
    {
    protected IServiceA _serviceA;
    protected IServiceB _serviceB;

    public HomeController(IServiceA serviceA, IServiceB serviceB)
    {
    _serviceA = serviceA;
    _serviceB = serviceB;
    }

    public ActionResult Index()
    {
    ViewBag.A = _serviceA.Say();
    ViewBag.B = _serviceB.Write();
    return View();
    }

    }

  • 相关阅读:
    关于SVN更新慢的解决方法
    用PS做法线,高光贴图的最简图文教程
    3dmax教程 人物+骨骼+蒙皮+动画教程
    django 模板视图,表单视图,各种视图
    django settings最佳配置
    groovy 弹出菜单
    python construct文档
    用powershell实现自动化操作
    如何用chrome扩展将网页变成黑底白字,用以保护视力
    打造基于CentOS7的xfce最简工作环境
  • 原文地址:https://www.cnblogs.com/sjqq/p/7554616.html
Copyright © 2011-2022 走看看