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()); } }
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>()); } }
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)); } }
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); }