Beispiel #1
0
        static void Main(string[] args)
        {
            var proxy = ClientProxyFactory.Create()
                        .UseCastleDynamicClientProxy()
                        .UseJsonNetSerializer()
                        .UseDefaultChannel($"{IPUtility.GetLocalIntranetIP().MapToIPv4()}:5566")
                        .GetClientProxy();


            var mathService = proxy.Create <IMathService>();


            var random = new Random();

            var req = new SumReq {
                A = random.Next(100000), B = random.Next(100000)
            };
            var result = mathService.SumAsync(req).GetAwaiter().GetResult();

            if (result.Code == 0)
            {
                Console.WriteLine("Call Math Service Add {0}+{1}={2}", req.A, req.B, result.Data?.Total);
            }
            else
            {
                Console.WriteLine("Call Math Service Error,Code={0}", result.Code);
            }

            Console.WriteLine("Press any key to exit !");
            Console.ReadKey();
        }
        public void BuildFactoryWithoutError()
        {
            var clientProxy = new Mock <IClientProxy>();
            var proxy       = ClientProxyFactory.Create()
                              .AddDependencyServices(services => { services.AddSingleton(clientProxy.Object); })
                              .GetClientProxy();

            Assert.NotNull(proxy);
        }
        public void AddDependencyServicesTest()
        {
            IServiceCollection container = new ServiceCollection();

            var factory = ClientProxyFactory.Create(container);


            factory.AddDependencyServices(services => { services.AddSingleton <IFooService, FooService>(); });


            var provider = container.BuildServiceProvider();

            var fooService = provider.GetRequiredService <IFooService>();

            Assert.NotNull(fooService);
        }
Beispiel #4
0
        static void Main(string[] args)
        {
            /* default route  */
            var factory = ClientProxyFactory.Create()
                          .UseCastleDynamicClientProxy()
                          .ConfigureLogging(logger => logger.AddConsole())
                          .UseMessagePackSerializer()
                          .UseDefaultChannel($"{IPUtility.GetLocalIntranetIP().MapToIPv4()}:5566");



            /* service discovery route
             * var factory = ClientProxyFactory.Create()
             *  .ConfigureLogging(logger =>logger.AddConsole())
             *  .UseCastleDynamicProxy()
             *  .UseMessagePackSerializer()
             *  .UseConsulDnsServiceDiscovery(); //默认配置 localhost
             */

            var proxy = factory.GetProxyInstance();

            var mathService = proxy.Create <IMathService>();

            var i      = 0;
            var random = new Random();

            while (i++ < 100)
            {
                var req = new SumReq {
                    A = random.Next(100000), B = random.Next(100000)
                };
                var result = mathService.SumAsync(req).Result;

                Console.WriteLine("Call Math Service ,return_code={0}", result.Code);
                if (result.Code == 0)
                {
                    Console.WriteLine("Call Math Service Add {0}+{1}={2}", req.A, req.B, result.Data?.Total);
                }

                Console.WriteLine("============= count:{0}", i);
            }

            Console.WriteLine("Press any key to exit !");
            Console.ReadKey();
        }
Beispiel #5
0
        private static void Main(string[] args)
        {
            var proxy = ClientProxyFactory.Create()
                        .UseCastleDynamicClientProxy()
                        .UseMessagePackSerializer()
                        .UseDefaultChannel($"{IPUtility.GetLocalIntranetIP().MapToIPv4()}:5566")
                        .GetClientProxy();

            var service = proxy.Create <IQuickStartService>();

            // 项目中应保证异步到底的调用
            var res = service.SayHelloAsync(new SayHelloReq {
                Name = "Maxi"
            }).GetAwaiter().GetResult();

            Console.WriteLine(res?.Data?.GreetingWords);
            Console.WriteLine("Press any key to exit !");
            Console.ReadKey();
        }
Beispiel #6
0
        public void ConfigureTest()
        {
            IServiceCollection container = new ServiceCollection();

            var factory = ClientProxyFactory.Create(container);

            factory.Configure <FooOptions>(o => {
                o.Option1 = "111";
                o.Option2 = 222;
            });


            var provider = container.BuildServiceProvider();

            var options = provider.GetRequiredService <IOptions <FooOptions> >();

            Assert.NotNull(options);
            Assert.NotNull(options.Value);

            Assert.Equal("111", options.Value.Option1);
            Assert.Equal(222, options.Value.Option2);
        }