有没有办法使此方法通用,以便我可以返回字符串,bool,int或double?现在,它正在返回一个字符串,但是如果能够找到“ true”或“ false”作为配置值,那么我想返回一个布尔值。
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,您可以潜在地使用,假设支持所有相关类型:
Convert.ChangeType
public static T ConfigSetting<T>(string settingName) { object value = ConfigurationManager.AppSettings[settingName]; return (T) Convert.ChangeType(value, typeof(T)); }
我不完全相信这是个好主意,请注意…