/// <summary>
        /// 获取API代理脚本
        /// </summary>
        /// <param name="options">API代理生成选项</param>
        /// <returns></returns>
        public string GetScript(ApiProxyGenerationOptions options)
        {
            if (options.UseCache)
            {
                return(_cache.GetOrAdd(CreateCacheKey(options), (key) => CreateScript(options)));
            }

            return(_cache[CreateCacheKey(options)] = CreateScript(options));
        }
        public string GetScript(ApiProxyGenerationOptions options)
        {
            if (options.UseCache)
            {
                return _cache.GetOrAdd(CreateCacheKey(options), (key) => CreateScript(options));
            }

            return _cache[CreateCacheKey(options)] = CreateScript(options);
        }
        private string CreateScript(ApiProxyGenerationOptions options)
        {
            var model = _modelProvider.CreateModel();

            if (options.IsPartialRequest())
            {
                model = model.CreateSubModel(options.Modules, options.Controllers, options.Actions);
            }

            var generatorType = _configuration.Generators.GetOrDefault(options.GeneratorType);
            if (generatorType == null)
            {
                throw new AbpException($"Could not find a proxy script generator with given name: {options.GeneratorType}");
            }

            using (var generator = _iocResolver.ResolveAsDisposable<IProxyScriptGenerator>(generatorType))
            {
                return generator.Object.CreateScript(model);
            }
        }
        /// <summary>
        /// 生成脚本
        /// </summary>
        /// <param name="options">API代理生成选项</param>
        /// <returns></returns>
        private string CreateScript(ApiProxyGenerationOptions options)
        {
            var model = _modelProvider.CreateModel();

            if (options.IsPartialRequest())
            {
                model = model.CreateSubModel(options.Modules, options.Controllers, options.Actions);
            }

            var generatorType = _configuration.Generators.GetOrDefault(options.GeneratorType);

            if (generatorType == null)
            {
                throw new AbpException($"Could not find a proxy script generator with given name: {options.GeneratorType}");
            }

            using (var generator = _iocResolver.ResolveAsDisposable <IProxyScriptGenerator>(generatorType))
            {
                return(generator.Object.CreateScript(model));
            }
        }
        public ApiProxyGenerationOptions CreateOptions()
        {
            var options = new ApiProxyGenerationOptions(Type, UseCache);

            if (!Modules.IsNullOrEmpty())
            {
                options.Modules = Modules.Split('|').Select(m => m.Trim()).ToArray();
            }

            if (!Controllers.IsNullOrEmpty())
            {
                options.Controllers = Controllers.Split('|').Select(m => m.Trim()).ToArray();
            }

            if (!Actions.IsNullOrEmpty())
            {
                options.Actions = Actions.Split('|').Select(m => m.Trim()).ToArray();
            }

            return options;
        }
 /// <summary>
 /// 创建缓存Key
 /// </summary>
 /// <param name="options">API代理生成选项</param>
 /// <returns></returns>
 private static string CreateCacheKey(ApiProxyGenerationOptions options)
 {
     return(options.ToJsonString().ToMd5());
 }
 private static string CreateCacheKey(ApiProxyGenerationOptions options)
 {
     return options.ToJsonString().ToMd5();
 }