public void Test1() { var proxyGen = new ProxyGenerator(); var client = new WebApiClient(); client.BaseUrl = "http://localhost:28180/api/ilogger/"; var i = new TestInterfaceInterceptor(client); var p = proxyGen.CreateInterfaceProxyWithoutTarget <ILogger>(i); var result = p.Log("Hello"); var t = p.LogAsync("AsyncErrorMessage"); t.Wait(); var asyncResult = t.Result; Task.Run(() => p.LogAsync("Async Error Message").GetAwaiter().GetResult()).GetAwaiter().GetResult(); p.LogError("Error Message"); p.LogException(new Exception("Test Exception")); p.LogException("Test Exception Message"); p.LogException(new Exception("Test Exception"), "Test Exception Message"); p.LogWarning("Test Warning"); }
CompileGenericInterceptor(TestInterfaceInterceptor testInterfaceInterceptor, MethodInfo interceptor) { var instance = Expression.Constant(testInterfaceInterceptor); var invocationParameter = Expression.Parameter(typeof(Castle.DynamicProxy.IInvocation), "invocation"); var call = Expression.Call(instance, interceptor, invocationParameter); return(Expression.Lambda <Action <Castle.DynamicProxy.IInvocation> >(call, invocationParameter).Compile()); }