瀏覽代碼

Merge branch 'master' of https://git.dev.tencent.com/xuhuo1234/saga

mengxiangge 6 年之前
父節點
當前提交
a03a98c335

+ 5 - 2
MBI/FirmLib/Com.FirmLib/BllHttpSetting.cs

@@ -8,6 +8,7 @@ using System.Text;
 using System.Threading.Tasks;
 using Com.FirmLib;
 using FWindSoft.Data;
+using SAGA.DotNetUtils.Extend;
 using SAGA.DotNetUtils.Utilities;
 
 namespace FirmHttpDao
@@ -84,8 +85,10 @@ namespace FirmHttpDao
         #endregion
         private static string ConfigPath { get; set; }
         static InnerSetting()
-        {                        
-            string path =Path.Combine(Directory.GetParent(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)).FullName, @"MBIResource\Config\HttpSetting.ini");
+        {
+            string path=Path.Combine(Directory.GetParent(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)).FullName,
+                "MBIResource", "Config", ConfigurationUtil.Default.GetSettingValue("HttpSetting") ?? "HttpSetting.ini");
+            //string path =Path.Combine(Directory.GetParent(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)).FullName, @"MBIResource\Config\HttpSetting.ini");
             ConfigPath = path;
             //XmlFileConfig<InnerSetting> config = new XmlFileConfig<InnerSetting>(path, "");
             //config.Load(); 

+ 1 - 0
MBI/FirmLib/Com.FirmLib/Com.FirmLib.csproj

@@ -77,6 +77,7 @@
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.ComponentModel.Composition" />
+    <Reference Include="System.Configuration" />
     <Reference Include="System.Core" />
     <Reference Include="System.Net.Http.WebRequest" />
     <Reference Include="System.Runtime.Caching" />

+ 6 - 0
MBI/MBIResource/Config/MBI.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+  <appSettings>
+    <add key="HttpSetting" value="HttpSetting - 测试.ini"/>
+  </appSettings>
+</configuration>

+ 102 - 0
MBI/SAGA.DotNetUtils/Extend/ConfigurationUtil.cs

@@ -0,0 +1,102 @@
+/*-------------------------------------------------------------------------
+ * 功能描述:ConfigurationExtension
+ * 作者:xulisong
+ * 创建时间: 2019/4/19 16:05:25
+ * 版本号:v1.0
+ *  -------------------------------------------------------------------------*/
+
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SAGA.DotNetUtils.Extend
+{
+    public static class ConfigurationUtil
+    {
+        private static string GetDefaultPath()
+        {
+            string defaultPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "BaseSettings.config");
+            return defaultPath;
+        }
+        private static Configuration m_Default;
+        /// <summary>
+        /// 默认的配置文件
+        /// </summary>
+        public static Configuration Default
+        {
+            get
+            {
+                if (m_Default == null)
+                {
+                    m_Default = m_InitConfig?.Invoke();
+                }
+                if (m_Default == null)
+                {
+                    var defaultPath = GetDefaultPath();
+                     m_Default = CreateConfig(GetDefaultPath());
+                }
+                return m_Default;
+            }
+        }
+        private static Func<Configuration> m_InitConfig;
+        public static void Init(Func<Configuration> initConfig)
+        {
+            m_Default = null;
+            m_InitConfig = initConfig;
+        }
+        /// <summary>
+        /// 初始化默认配置
+        /// </summary>
+        /// <param name="initConfig"></param>
+        public static void Init(Configuration initConfig)
+        {
+            m_Default = initConfig;
+        }
+
+        /// <summary>
+        /// 将指定路径配置文件,放到工具默认读取位置
+        /// </summary>
+        /// <param name="path"></param>
+        public static bool SaveToDefault(string path)
+        {
+            if (!File.Exists(path))
+            {
+                return false;
+            }
+            File.Copy(path, GetDefaultPath(),true);
+            return true;
+        }
+        public static string GetSettingValue(this Configuration config,string appsettingKey)
+        {
+            try
+            {
+                if (string.IsNullOrWhiteSpace(appsettingKey))
+                {
+                    return null;
+                }
+                return config.AppSettings.Settings[appsettingKey].Value;
+            }
+            catch (Exception)
+            {
+
+                return null;
+            }
+        }
+        public static Configuration CreateConfig(string configPath, ConfigurationUserLevel level)
+        {
+            ExeConfigurationFileMap map = new ExeConfigurationFileMap();
+            map.ExeConfigFilename = configPath; ;
+            Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, level);
+            return config;
+        }
+        public static Configuration CreateConfig(string configPath)
+        {       
+            return CreateConfig(configPath, ConfigurationUserLevel.None);
+        }
+    }
+}

+ 8 - 1
MBI/SAGA.MBI/App.xaml.cs

@@ -14,6 +14,7 @@ using System.Threading.Tasks;
 using System.Windows;
 using CEFSharpWpf;
 using SAGA.DotNetUtils;
+using SAGA.DotNetUtils.Extend;
 using SAGA.DotNetUtils.Others;
 using SAGA.MBI.Common;
 using SAGA.MBI.DataArrange;
@@ -30,7 +31,7 @@ namespace SAGA.MBI
         [STAThread]
         static void Main(string[] args)
         {
-            MessageManager.InitMessageMap();
+            InitApp();
 #if DEBUG
             WinLogin win = new WinLogin();
             Application myAp = new Application();
@@ -73,5 +74,11 @@ namespace SAGA.MBI
             }
 #endif
         }
+
+        public static void InitApp()
+        {
+            MessageManager.InitMessageMap();
+            ConfigurationUtil.SaveToDefault(Path.Combine(MBIConst.MBIResourcePath, "Config", "MBI.config"));
+        }
     }
 }

+ 2 - 1
MBI/SAGA.MBI/FileStream/ProjectDirOperate.cs

@@ -11,6 +11,7 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using SAGA.DotNetUtils;
+using SAGA.DotNetUtils.Extend;
 using SAGA.DotNetUtils.Serializer;
 using SAGA.MBI.Common;
 using SAGA.MBI.JsonConvert;
@@ -23,7 +24,7 @@ namespace SAGA.MBI.FileStream
     /// </summary>
     public class ProjectDirOperate
     {
-        private static readonly string m_HttpSettingPath = Path.Combine(MBIConst.MBIResourcePath, "Config\\HttpSetting.ini");
+        private static readonly string m_HttpSettingPath = Path.Combine(MBIConst.MBIResourcePath, "Config", ConfigurationUtil.Default.GetSettingValue("HttpSetting")?? "HttpSetting.ini");
         #region ProjectLast
 
         /// <summary>