系统:win10
编译器:VS2013
Spring.Core.dll 1.3.1
Common.Logging.dll
namespace SpringNetMethodDi { public abstract class Mobile { //可以是virtual public abstract SendTool GetSendTool(); } }
namespace SpringNetMethodDi { public class SendTool { public void WeChat() { Console.WriteLine("我是Kimisme,正在用微信发信息"); } } }
namespace SpringNetMethodDi { public class RealOp { public virtual string Buy(string goods) { return goods + "是昨天的剩下的"; } } }
namespace SpringNetMethodDi { public class SuperMarket : IMethodReplacer { public object Implement(object target, System.Reflection.MethodInfo method, object[] arguments) { string value = arguments[0].ToString(); return value + "是今天的面包"; } } }
namespace SpringNetMethodDi { 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)); } } } }
namespace SpringNetMethodDi { public class Men { public string OpenThisDoor(string arg) { return "参数是:" + arg; } } }
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <sectionGroup name="spring"> <section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core"/> <section name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/> </sectionGroup> </configSections> <spring> <context> <resource uri="config://spring/objects"></resource> </context> <objects xmlns="http://www.springframework.net"> <!--01抽象方法注入--> <object name="sendTool" type="SpringNetMethodDi.SendTool,SpringNetMethodDi"></object> <object name="mobile" type="SpringNetMethodDi.Mobile,SpringNetMethodDi"> <lookup-method name="GetSendTool" object="sendTool"/> </object> <!--02替换方法--> <object name="replaceValue" type="SpringNetMethodDi.SuperMarket,SpringNetMethodDi"></object> <object name="realOp" type="SpringNetMethodDi.RealOp,SpringNetMethodDi"> <replaced-method name="Buy" replacer="replaceValue"> <arg-type match="String"/> </replaced-method> </object> <!--03事件注入--> <object id="door" type="SpringNetMethodDi.Door,SpringNetMethodDi"></object> <object id="men" type="SpringNetMethodDi.Men,SpringNetMethodDi"> <listener event="OpenTheDoor" method="OpenThisDoor"> <ref object="door"/> </listener> </object> </objects> </spring> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> </configuration>
namespace SpringNetMethodDi { class Program { static void Main(string[] args) { IApplicationContext context = ContextRegistry.GetContext(); Mobile mobile = context.GetObject("mobile") as Mobile; mobile.GetSendTool().WeChat(); RealOp op = context.GetObject("realOp") as RealOp; Console.WriteLine(op.Buy("面包")); Door door = context.GetObject("door") as Door; door.OnOpen("Opening"); Console.ReadKey(); } } }
今天又掉进坑了,具体什么坑看问题汇总
原文:http://www.cnblogs.com/2star/p/5346436.html