【kooboo分析】 关于配置数据连接

  这个系统很值得学习其中的很多发光点,看了很久的代码,如果不写出来些东西,的确是对不起开发者的汗水。

当然,从这里起有些偏颇,先从点开始吧。 然后再从整体架构来说吧。

  其中数据方面,作者考虑的的确是细腻,如果使用了配置文件,就按配置文件走,如果没有配置文件,就按默认配置文件走,如果默认配置文件也没有,就使用SQLExPress。

其实在项目中,这样做是没有太大必要的,但是,这是对于一个开源软件,对于很多懒得下载,附加数据的二次开发者来说,的确是方便的很。

下面上代码片段。

[DataContract]
    public class SiteOnSQLServerSettings
    {
        [System.Xml.Serialization.XmlIgnoreAttribute]
        private static SiteOnSQLServerSettings instance = null;
        static SiteOnSQLServerSettings()
        {
            string settingFile = GetSettingFile();
            if (File.Exists(settingFile))
            {
                instance = DataContractSerializationHelper.Deserialize<SiteOnSQLServerSettings>(settingFile);
            }
            else
            {
                instance = new SiteOnSQLServerSettings()
                {
                    ConnectionString = "Server=.\\SQLExpress;Database=Kooboo_CMS; Trusted_Connection=Yes;"
                };
                Save(instance);
            }
        }
        public static void Save(SiteOnSQLServerSettings instance)
        {
            string settingFile = GetSettingFile();
            DataContractSerializationHelper.Serialize(instance, settingFile);
        }
        private static string GetSettingFile()
        {
            return Path.Combine(Kooboo.Settings.BinDirectory, "SiteOnSQLServerSettings.config");
        }
        public static SiteOnSQLServerSettings Instance
        {
            get
            {
                return instance;
            }
            set
            {
                instance = value;
                Save(instance);
            }
        }
        [DataMember]
        public string ConnectionString { get; set; }
    }
 
原文地址:https://www.cnblogs.com/zbw911/p/2859310.html