接上文:
public static string ChannelManagerUrl
{
get
{
return App.GetSetting(Consts.SETTING_CHANNELMANAGER_URL);
}
}
/// <summary>
/// 获取指定的配置项,
/// 取值顺序:
/// 1.从配置文件的“AppSettings”节点取值。
/// 2.从“注册表”的“SOFTWAREYYYY.SmsPlatform{ModuleName}”取值。
/// 3.从“SOFTWAREYYYY.SmsPlatform”取值。
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static string GetSetting(string key)
{
var v = ConfigurationManager.AppSettings[key];//先取配置文件中的设置
if (v != null)
return v;
var registryKey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(RegKeyName);//获取注册表
if (registryKey == null)
return null;
object o = null;
if (ModuleName != null)
{
var registrySubKey = registryKey.OpenSubKey(ModuleName); //取注册表中的子项设置
if (registrySubKey != null)
{
o = registrySubKey.GetValue(key);
registrySubKey.Close();
}
}
if (o == null)
{
o = registryKey.GetValue(key);//从公用项中取值
registryKey.Close();
}
if (o == null)
return null;
v = o as string;
if (v != null)
return v;
return o + string.Empty;
}