zoukankan      html  css  js  c++  java
  • c# Castle Windsor简单例子

    Windsor是Castle的IOC框架。需要用到两个dll(Castle.Core.dll和Castle.Windsor.dll)。

    1、接口以及接口实现类:

    public interface ITest
        {
            int Add(int a, int b);
        }
     public class Test:ITest
        {
            public int Add(int a, int b)
            {
                return a + b;
            }
        }

    2、创建自定义类WindsorInstaller,继承IWindsorInstaller,实现IWindsorInstaller的Install方法,如下:

    public class WindsorInstaller: IWindsorInstaller
        {
            public void Install(IWindsorContainer container, IConfigurationStore store)
            {
                //单个注册法,还有其他方式
                //ITest为接口,Test为接口的实现类
                container.Register(Component.For<ITest>().ImplementedBy<Test>());
            }
        }

    3、创建自定义类WindsorInit,单例模式获取ioc容器:

     public class WindsorInit
        {
            private static WindsorContainer _container;
            public static WindsorContainer GetContainer()
            {
                if (_container == null)
                {
                    _container = new WindsorContainer();
                    _container.Install(FromAssembly.This());
                }
                return _container;
            }
    
            public void CloseContex()
            {
                _container.Dispose();
            }
        }

    4、mvc中controller中使用:

    public class HomeController : Controller
        {
            private ITest _test;
            public ActionResult Index()
            {
                WindsorContainer container = WindsorInit.GetContainer();
                _test = container.Resolve<ITest>(new Arguments(new { }));
                var result = _test.Add(10,20);
                ViewBag.result = result;
                return View();
            }
        }

    页面会输出结果:30

    这里简单实现Castle Windsor(IOC)。

  • 相关阅读:
    领域驱动设计精简版--阅读笔记
    ATM机的面向对象分析--笔记
    第一部分 Spring 基础
    spring in action 5 笔记--spring 实战 第4版和第5版对比
    Redis深度历险
    《Spring in action》之Spring之旅
    递归算法(java)
    java中static学习总结
    浅谈HookSSDT和和Resume(恢复)SSDT
    转---派遣例程与IRP结构
  • 原文地址:https://www.cnblogs.com/qk2014/p/9028291.html
Copyright © 2011-2022 走看看