Spring.net 事件的注入

时间:2015-06-13 21:37:49   收藏:0   阅读:292

1.首先上客户端代码

  static void Main(string[] args)
技术分享        {
技术分享            IApplicationContext ctx = ContextRegistry.GetContext();
技术分享
技术分享             Console.WriteLine("事件注册");
技术分享            Door door = (Door)ctx.GetObject("door");
技术分享            door.OnOpen("Opening!");
技术分享            Console.WriteLine();
技术分享
技术分享            Console.ReadLine();
技术分享        }

 spring配置里将做到为door对象的OpenTheDoor事件注入事件的触发代码 触发代码放在Men类的OpenThisDoor方法里

 //先定义一个委托
技术分享    public delegate string OpenHandler(string arg);
技术分享
技术分享    public class Door
技术分享    {
技术分享        public event OpenHandler OpenTheDoor;
技术分享
技术分享        public void OnOpen(string arg)
技术分享        {
技术分享            //调用事件
技术分享            if (OpenTheDoor != null)
技术分享            {
技术分享                Console.WriteLine(OpenTheDoor(arg));
技术分享            }
技术分享        }
技术分享    }
技术分享
技术分享    public class Men
技术分享    {
技术分享        public string OpenThisDoor(string arg)
技术分享        {
技术分享            return "参数是:" + arg;
技术分享        }
技术分享    }

最后上配置文件 <!--下面配置文件的意思是men对象为door对象的监听者 当door对象执行OpenTheDoor这个事件则触发的结果则为 men对象的OpenThisDoor 事件参数arg也要有-->

      <!--事件注入-->
      <object id="men" type="SpringNet_MethodDi.Men, SpringNet_MethodDi">
        <listener event="OpenTheDoor" method="OpenThisDoor">
          <ref object="door"/>
        </listener>
      </object>          
      <object id="door" type="SpringNet_MethodDi.Door, SpringNet_MethodDi" />

原文:http://www.cnblogs.com/kexb/p/4574053.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!