public void ProxyForHelloWorldChinaServiceTest() { //测试代理类 var proxy = DynamicProxy.Proxy <IHelloWorldService, HelloWorldChinaService>(); String result = proxy.SayHelloWorld(); Assert.Equal(new HelloWorldChinaService().SayHelloWorld(), result); result = proxy.SayHelloWorld(Language.CN); Assert.Equal(new HelloWorldChinaService().SayHelloWorld(Language.CN), result); }
public void ProxyInterceptorTest() { //测试代理类 var proxy = DynamicProxy.Proxy <IHelloWorldService, HelloWorldChinaService>(); var invokeProxy = (InvokeProxy <HelloWorldChinaService>)proxy; invokeProxy.BeforeExecute += (sender, e) => { //验证拦截成功。 Assert.NotNull(sender); Assert.NotNull(e); var parametersValue = e.Args; if (parametersValue.Length > 0) { //验证参数是否是 Language.CN Assert.Equal(Language.CN, parametersValue[0]); } }; String result = proxy.SayHelloWorld(); result = proxy.SayHelloWorld(Language.CN); }
public void ProxyInterceptorChangesParamValueTest() { //测试代理类 var proxy = DynamicProxy.Proxy <IHelloWorldService, HelloWorldChinaService>(); var invokeProxy = (InvokeProxy <HelloWorldChinaService>)proxy; invokeProxy.BeforeExecute += (sender, e) => { var s = sender.ToString(); var parameters = e.MethodInfo.GetParameters(); var parametersValue = e.Args; if (parametersValue.Length > 0) { //测试拦截为EN parametersValue[0] = Language.EN; } var ee = e.ToString(); }; String result = proxy.SayHelloWorld(); Assert.Equal(new HelloWorldChinaService().SayHelloWorld(), result); result = proxy.SayHelloWorld(Language.CN); Assert.NotEqual(new HelloWorldChinaService().SayHelloWorld(Language.CN), result); }