Discuz.Config/Provider/ConfigProvider.cs

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using Discuz.Common;


namespace Discuz.Config.Provider
{
	/// <summary>
	/// ConfigProvider 的摘要说明。
	/// </summary>
	public class ConfigProvider 
	{
		private ConfigProvider()
		{
		}

		private static object lockHelper = new object();

		private static string path = Utils.GetMapPath(BaseConfigs.GetForumPath + "config/general.config");
		
		//程序刚加载时general.config文件修改时间
		private static string fileoldchange = null;

		//最新general.config文件修改时间
		private static string filenewchange = null;

		static ConfigProvider()
		{
			fileoldchange = System.IO.File.GetLastWriteTime(path).ToString();
		
			config = (GeneralConfigInfo)Common.SerializationHelper.Load(typeof(GeneralConfigInfo), path);
		}

		private static GeneralConfigInfo config = null;

		/// <summary>
		/// 获取配置对象实例
		/// </summary>
		/// <returns></returns>
		public static GeneralConfigInfo Instance()
		{
			filenewchange = System.IO.File.GetLastWriteTime(path).ToString();
			
			//当程序运行中general.config发生变化时则对config重新赋值
			if(fileoldchange != filenewchange)
			{
				fileoldchange = filenewchange;
				lock (lockHelper)
				{
					config = (GeneralConfigInfo)Common.SerializationHelper.Load(typeof(GeneralConfigInfo), path);
				}
			}

			return config;
		}

		/// <summary>
		/// 设置配置对象实例
		/// </summary>
		/// <param name="anConfig"></param>
		public static void SetInstance(GeneralConfigInfo anConfig)
后面还有 8 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。