有没有办法使此方法通用,以便我可以返回字符串,bool,int或double?现在,它正在返回一个字符串,但是如果能够找到“true”或“false”作为配置值,那么我想返回一个 bool 值。

    public static string ConfigSetting(string settingName)
    {
         return ConfigurationManager.AppSettings[settingName];
    }

最佳答案

您需要使其成为通用方法,如下所示:

public static T ConfigSetting<T>(string settingName)
{
    return /* code to convert the setting to T... */
}

但是调用者将必须指定他们期望的类型。然后,您可以潜在地使用 Convert.ChangeType ,前提是支持所有相关类型:
public static T ConfigSetting<T>(string settingName)
{
    object value = ConfigurationManager.AppSettings[settingName];
    return (T) Convert.ChangeType(value, typeof(T));
}

请注意,我并不完全相信这是个好主意...

10-01 07:59