コード例 #1
0
        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");
        }
コード例 #2
0
        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());
        }