Exemplo n.º 1
0
        static void RetistTest()
        {
            var service = new ZeroService
            {
                IsAutoService = true,
                ServiceName   = "MyTest",
                Receiver      = new EmptyReceiver(),
                Serialize     = new NewtonJsonSerializeProxy()
            } as IService;

            service.RegistWildcardAction(new ApiActionInfo
            {
                Name              = "*",
                Route             = "*",
                ControllerName    = "DataEventProxy",
                ControllerCaption = "DataEventProxy",
                AccessOption      = ApiOption.Public | ApiOption.Anymouse,
                ResultType        = typeof(Task),
                IsAsync           = true,
                Action            = (msg, seri, arg) => null
            });
            ZeroFlowControl.RegistService(service);
        }
Exemplo n.º 2
0
        private void RegistToZero()
        {
            foreach (var serviceInfo in ServiceInfos.Values)
            {
                if (serviceInfo.Aips.Count == 0)
                {
                    continue;
                }
                logger.Debug(() => $"【注册API】 {serviceInfo.Name}");

                var service = ZeroFlowControl.TryGetZeroObject(serviceInfo.Name);
                if (service == null)
                {
                    var receiver = serviceInfo.NetBuilder(serviceInfo.Name);
                    if (receiver == null || receiver is EmptyService)
                    {
                        service = new EmptyService
                        {
                            IsAutoService = true,
                            ServiceName   = serviceInfo.Name,
                            Serialize     = serviceInfo.Serialize switch
                            {
                                SerializeType.Json => DependencyHelper.GetService <IJsonSerializeProxy>(),
                                SerializeType.NewtonJson => new NewtonJsonSerializeProxy(),
                                SerializeType.Xml => DependencyHelper.GetService <IXmlSerializeProxy>(),
                                SerializeType.Bson => DependencyHelper.GetService <IBsonSerializeProxy>(),
                                _ => DependencyHelper.GetService <IJsonSerializeProxy>(),
                            }
                        }
                    }
                    ;
                    else
                    {
                        service = new ZeroService
                        {
                            IsAutoService = true,
                            ServiceName   = serviceInfo.Name,
                            Receiver      = receiver,
                            Serialize     = serviceInfo.Serialize switch
                            {
                                SerializeType.Json => DependencyHelper.GetService <IJsonSerializeProxy>(),
                                SerializeType.NewtonJson => new NewtonJsonSerializeProxy(),
                                SerializeType.Xml => DependencyHelper.GetService <IXmlSerializeProxy>(),
                                SerializeType.Bson => DependencyHelper.GetService <IBsonSerializeProxy>(),
                                _ => DependencyHelper.GetService <IJsonSerializeProxy>(),
                            }
                        }
                    };

                    ZeroFlowControl.RegistService(ref service);
                }
                foreach (var api in serviceInfo.Aips)
                {
                    try
                    {
                        var info = (ApiActionInfo)api.Value;
                        if (api.Key == "*")
                        {
                            logger.Debug(() => $"[注册接口] {serviceInfo.Name}/* => {info.Caption} {info.ControllerName}.{info.Name}");
                            service.RegistWildcardAction(info);
                        }
                        else if (!service.RegistAction(api.Key, info))
                        {
                            logger.Error($"[注册接口]失败,因为路由名称已存在 {serviceInfo.Name}/{api.Key} => {info.Caption} {info.ControllerName}.{info.Name}");
                        }
                        else
                        {
                            logger.Debug(() => $"[注册接口] {serviceInfo.Name}/{api.Key} => {info.Caption} {info.ControllerName}.{info.Name}");
                        }
                    }
                    catch (Exception ex)
                    {
                        logger.Exception(ex, api.Key);
                    }
                }
            }