/// <summary>
 /// in order to create initial file, and put the release date into the initial file.
 /// </summary>
 static VersionInfomation()
 {
     if (StaticConstructionController.FunctionEnabled)
     {
         string          filaPath        = MyDirectoryHelper.CreateDir("VersionInfo") + "Config.ini";
         IniFileOperator iniFileOperator = new IniFileOperator(filaPath);
         string[]        sections;
         if (iniFileOperator.GetAllSectionNames(out sections) == 0)
         {
             if (sections.Contains("Release"))
             {
                 StaticReleaseData = iniFileOperator.ReadString("Release", "Date", "");
             }
             else
             {
                 iniFileOperator.IniWriteValue("Release", "Date", DateTime.Now.ToLongDateString());
                 StaticReleaseData = iniFileOperator.ReadString("Release", "Date", "");
             }
         }
         else
         {
             iniFileOperator.IniWriteValue("Config", "APP_ID", "0x0C");
             iniFileOperator.IniWriteValue("Release", "Date", DateTime.Now.ToLongDateString());
         }
         Debug.WriteLine("the original struction function has been execute");
     }
     else
     {
         CustomStruction?.Invoke();
         Debug.WriteLine("the custom struction function has been execute");
     }
     AnotherConstructionAction?.Invoke();
     Debug.WriteLine("AnotherConstructionAction has been execute");
 }
        /// <summary>
        /// save binary file in the fixed path, which equals with the ReadFromBin' file path.
        /// </summary>
        public void SaveToBin()
        {
            IFormatter formatter = new BinaryFormatter();
            string     filePath  = MyDirectoryHelper.CreateDir("VersionInfo") + "Config.bin";

            if (File.Exists(filePath))
            {
                return;
            }
            Stream stream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);

            formatter.Serialize(stream, this);
            stream.Close();
        }
        /// <summary>
        /// read the binary file from the fixed path. it will return null if something goes wrong.
        /// </summary>
        /// <returns></returns>
        public static VersionInfomation ReadFromBin()
        {
            string filePath = MyDirectoryHelper.CreateDir("VersionInfo") + "Config.bin";

            return(ReadFromBin(filePath));
        }