zoukankan      html  css  js  c++  java
  • 【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; }
        }
     
  • 相关阅读:
    Java中NIO和IO区别和适用场景
    JDK和CGLIB动态代理原理
    java中的Serializable接口的作用
    redis采用序列化方案存对象
    在时间复杂度为O(n)且空间复杂度为O(1)的情况下翻转链表
    给定一个排好序的数组,然后求出丢失的数字
    求字符串里超过字符长度一半的元素
    求你给定两字符串包含的字母数是否完全一致
    动态规划,求数组不相邻数字的最大子串值
    JWT 工具
  • 原文地址:https://www.cnblogs.com/zbw911/p/2859310.html
Copyright © 2011-2022 走看看