/// <summary> /// 获取指定配置单元的配置信息 /// </summary> /// <param name="ConfigInfo"></param> /// <returns></returns> protected object this[IConfigurationUnitInfo ConfigInfo] { get { if (ConfigInfo.InitFlag) { return(ConfigInfo.Value); } GetConfigUnit(ConfigInfo); return(ConfigInfo.Value); } }
/// <summary> /// 获取指定配置单元 /// </summary> /// <param name="configuration">配置对象</param> /// <param name="unitInfo">配置单元信息</param> /// <returns>相关的配置信息</returns> protected object GetConfigUnit(Configuration configuration, IConfigurationUnitInfo unitInfo) { if (unitInfo.UnitType.IsSubclassOf(typeof(ConfigurationSectionGroup))) { return(ConfigurationHelper.GetConfigurationSectionGroup(configuration.RootSectionGroup, unitInfo.ConfigName, unitInfo.UnitType, unitInfo.AutoInitWhenNonExist, true)); } else if (unitInfo.UnitType.IsSubclassOf(typeof(ConfigurationSection))) { return(ConfigurationHelper.GetConfigurationSection(configuration.RootSectionGroup, unitInfo.ConfigName, unitInfo.UnitType, unitInfo.AutoInitWhenNonExist, true)); } else { throw new Exception("Unknown Configuration Unit"); } return(null); }
/// <summary> /// 获取指定的配置单元 /// </summary> /// <param name="ConfigInfo">配置单元信息</param> protected void GetConfigUnit(IConfigurationUnitInfo unitInfo) { string path = GetConfigUnitFilePath(this.ClientInfo, unitInfo); if (object.ReferenceEquals(null, path) || path.Equals(string.Empty)) { return; } Configuration configuration = ConfigurationObjectManager.GetConfiguration(path, true); if (object.ReferenceEquals(null, configuration)) { return; } unitInfo.Value = GetConfigUnit(configuration, unitInfo); unitInfo.InitFlag = true; }
/// <summary> /// 获取指定配置单元的文件路径 /// </summary> /// <param name="client">客户信息</param> /// <param name="unitInfo">配置单元信息</param> /// <returns>路径</returns> protected string GetConfigUnitFilePath(IClientInfo client, IConfigurationUnitInfo unitInfo) { string path = null; switch (unitInfo.Domain) { case EnumConfigDomain.Application: path = client.SystemConfigurationDirectory; break; case EnumConfigDomain.User: path = client.UserConfigurationDirectory; break; default: throw new Exception("未知的配置文件域"); break; } return(System.IO.Path.Combine(path, unitInfo.FileName)); }
/// <summary> /// ��ȡָ�����õ�Ԫ���ļ�·�� /// </summary> /// <param name="client">�ͻ���Ϣ</param> /// <param name="unitInfo">���õ�Ԫ��Ϣ</param> /// <returns>·��</returns> protected string GetConfigUnitFilePath(IClientInfo client, IConfigurationUnitInfo unitInfo) { string path = null; switch (unitInfo.Domain) { case EnumConfigDomain.Application: path = client.SystemConfigurationDirectory; break; case EnumConfigDomain.User: path = client.UserConfigurationDirectory; break; default: throw new Exception("δ֪�������ļ���"); break; } return System.IO.Path.Combine(path, unitInfo.FileName); }
/// <summary> /// ��ȡָ�����õ�Ԫ /// </summary> /// <param name="configuration">���ö���</param> /// <param name="unitInfo">���õ�Ԫ��Ϣ</param> /// <returns>��ص�������Ϣ</returns> protected object GetConfigUnit(Configuration configuration, IConfigurationUnitInfo unitInfo) { if(unitInfo.UnitType.IsSubclassOf(typeof(ConfigurationSectionGroup))) { return ConfigurationHelper.GetConfigurationSectionGroup(configuration.RootSectionGroup, unitInfo.ConfigName, unitInfo.UnitType, unitInfo.AutoInitWhenNonExist, true); } else if (unitInfo.UnitType.IsSubclassOf(typeof(ConfigurationSection))) { return ConfigurationHelper.GetConfigurationSection(configuration.RootSectionGroup, unitInfo.ConfigName, unitInfo.UnitType, unitInfo.AutoInitWhenNonExist, true); } else { throw new Exception("Unknown Configuration Unit"); } return null; }
/// <summary> /// ��ȡָ�������õ�Ԫ /// </summary> /// <param name="ConfigInfo">���õ�Ԫ��Ϣ</param> protected void GetConfigUnit(IConfigurationUnitInfo unitInfo) { string path = GetConfigUnitFilePath(this.ClientInfo, unitInfo); if (object.ReferenceEquals(null, path) || path.Equals(string.Empty)) return; Configuration configuration = ConfigurationObjectManager.GetConfiguration(path, true); if (object.ReferenceEquals(null, configuration)) return; unitInfo.Value = GetConfigUnit(configuration, unitInfo); unitInfo.InitFlag = true; }
/// <summary> /// ��ȡָ�����õ�Ԫ��������Ϣ /// </summary> /// <param name="ConfigInfo"></param> /// <returns></returns> protected object this[IConfigurationUnitInfo ConfigInfo] { get { if (ConfigInfo.InitFlag) return ConfigInfo.Value; GetConfigUnit(ConfigInfo); return ConfigInfo.Value; } }