示例#1
0
        public static void Handle()
        {
            Init();
            Stopwatch stopWatch = new Stopwatch();

            stopWatch.Start();
            var taskService = AnnoProxyBuilder.GetService <ITaskService>();

            stopWatch.Stop();
            Console.WriteLine($"AnnoProxyBuilder.GetService:{stopWatch.Elapsed}");

            stopWatch.Restart();
            taskService = AnnoProxyBuilder.GetService <ITaskService>();
            stopWatch.Stop();
            Console.WriteLine($"AnnoProxyBuilder.GetService2:{stopWatch.Elapsed}");

            for (int i = 0; i < 1; i++)
            {
                var rlt1 = taskService.ServiceInstances();
                Console.WriteLine("ServiceInstances:" + Newtonsoft.Json.JsonConvert.SerializeObject(rlt1));
                Console.WriteLine("CustomizeSayHi:" + taskService.CustomizeSayHi("AnnoProxy"));
                Console.WriteLine("Add:" + taskService.Add(6, 8));
                Console.WriteLine("Dyn:" + taskService.Dyn());
                Console.WriteLine("Object:" + taskService.Object());
                Console.WriteLine("Dynamic:" + taskService.Dynamic());
            }
        }
示例#2
0
 public void PreConfigurationBootstrap()
 {
     /*
      * Anno服务接口通过代理注册到IOC容器中去
      */
     try
     {
         var builder = IocLoader.GetAutoFacContainerBuilder();
         builder.RegisterInstance <ILogService>(AnnoProxyBuilder.GetService <ILogService>());
     }
     catch {
         var builder = IocLoader.GetServiceDescriptors();
         builder.AddSingleton <ILogService>(AnnoProxyBuilder.GetService <ILogService>());
     }
 }
示例#3
0
        public static void Handle()
        {
            Init();
            Stopwatch stopWatch = new Stopwatch();

            stopWatch.Start();

            //var proxys = AnnoProxyBuilder.GetServices(typeof(AnnoRpcTest).Assembly);
            //proxys.TryGetValue(typeof(ITaskService), out object taskServiceObj);
            //ITaskService taskService=taskServiceObj as ITaskService;

            var taskService = AnnoProxyBuilder.GetService <ITaskService>();

            stopWatch.Stop();
            Console.WriteLine($"AnnoProxyBuilder.GetService:{stopWatch.Elapsed}");

            stopWatch.Restart();
            taskService = AnnoProxyBuilder.GetService <ITaskService>();
            stopWatch.Stop();
            Console.WriteLine($"AnnoProxyBuilder.GetService2:{stopWatch.Elapsed}");

            var helloWorldService = AnnoProxyBuilder.GetService <IHelloWorldService>();

            for (int i = 0; i < 5; i++)
            {
                /*
                 *
                 * var rlt1 = taskService.ServiceInstances();
                 *
                 * Console.WriteLine("TaskSayHi:" + taskService.TaskSayHi("杜燕明").Result);
                 * taskService.TaskVoidSayHi("TaskVoid").Wait();
                 * taskService.VoidSayHi("Void");
                 * Console.WriteLine("ServiceInstances:" + Newtonsoft.Json.JsonConvert.SerializeObject(rlt1));
                 * Console.WriteLine("CustomizeSayHi:" + taskService.CustomizeSayHi("AnnoProxy"));
                 * Console.WriteLine("Add:" + taskService.Add(6, 8));
                 * Console.WriteLine("Dyn:" + taskService.Dyn());
                 * Console.WriteLine("Object:" + taskService.Object());
                 * Console.WriteLine("Dynamic:" + taskService.Dynamic());
                 *
                 * Console.WriteLine("DynamicReturnClass:" + taskService.DynamicReturnClass());
                 * Console.WriteLine("DynamicReturnClassTask:" + taskService.DynamicReturnClassTask().Result);
                 *
                 * var rlt=  taskService.SayHi(null);
                 */
                Console.WriteLine("SayHello-AnnoGrpc:" + helloWorldService.SayHello("AnnoGrpc", 6));
            }
        }
示例#4
0
        public static void Register()
        {
            var builder = IocManager.GetContainerBuilder();
            var config  = GlobalConfiguration.Configuration;

            builder.RegisterApiControllers(Assembly.GetCallingAssembly())
            .PropertiesAutowired();
            builder.RegisterWebApiFilterProvider(config);
            builder.RegisterWebApiModelBinderProvider();

            /*
             * Anno服务接口通过代理注册到IOC容器中去
             */
            builder.RegisterInstance <IHelloWorldViperService>(AnnoProxyBuilder.GetService <IHelloWorldViperService>());

            IocManager.Build(typeof(IocManager).Assembly);
            config.DependencyResolver = new AutofacWebApiDependencyResolver(IocManager.IoContainer);
        }