Esempio n. 1
0
        /// <summary>初始化
        /// <remarks>
        /// 最小粒度应用初始化api,包含应用必须条件:
        /// 应用名称,环境版本,配置文件约定和生成、环境配置、异常体系、上下文服务
        /// </remarks>
        /// </summary>
        /// <param name="app"></param>
        /// <param name="versionFlag">
        /// 指定环境版本,默认从appsetting的键EnvironmentVersionFlag以及编译参数获取
        /// Release编译时总是使用Release版本
        /// </param>
        /// <returns></returns>
        public static SystemConfig Configure(string app, string versionFlag)
        {
            if (_settings != null)
            {
                throw new NotSupportedException("不支持重复初始化配置框架");
            }

            var flag = Util.GetEnvironmentVersionFlag(versionFlag).ToString();
            //读取专用配置文件程序集
            var configsAssembly = Assembly.Load(ConfigFilesAssemblyName);

            //实例化
            _settings = new SystemConfig(app, flag);
            //配置文件变量
            var fileParameters = SystemConfig.GenerateFileParameters(_settings);

            //基础框架配置实例初始化
            _settings.FoundationConfig = CodeSharp.Core.Configuration
                                         .ConfigWithEmbeddedXml(null
                                                                , _folder
                                                                , configsAssembly
                                                                , ConfigFilesAssemblyName + "." + app
                                                                , fileParameters);
            //配置项初始化
            SystemConfig.RenderProperties(_settings, configsAssembly, ConfigFilesAssemblyName);
            //默认配置文件初始化
            SystemConfig.RenderFile(_settings, configsAssembly, ConfigFilesAssemblyName, "log4net.config", fileParameters);
            //设置运行时变量
            _settings.FoundationConfig.RuntimeProperties(Util.GetHowToGenerateRuntimeProperties(_settings));
            //启用全局缓存管理
            _settings.NonWeakReferenceCache();

            //以下编写涉及基本对象注入的无容器时的初始化
            //默认异常体系
            _settings.ExceptionSystem(new DefaultExceptionSystem());

            return(_settings);
        }
Esempio n. 2
0
 /// <summary>从配置程序集中按规则读取并在应用配置文件目录下生成额外的配置文件
 /// </summary>
 /// <param name="fileName">文件名称,如:log4net.config</param>
 /// <param name="fileParameters">定义要在文本中替换的文件变量</param>
 /// <returns></returns>
 public SystemConfig File(string fileName, IDictionary <string, string> fileParameters)
 {
     SystemConfig.RenderFile(this, Assembly.Load(ConfigFilesAssemblyName), ConfigFilesAssemblyName, fileName, fileParameters);
     return(this);
 }