我在ConfigurationSection中的ConfigurationProperty之一是枚举.什么时候net从配置文件中解析此枚举字符串值,如果大小写不完全匹配,将引发异常.
在分析这个值时,是否需要忽略大小写?
我在ConfigurationSection中的ConfigurationProperty之一是枚举.什么时候net从配置文件中解析此枚举字符串值,如果大小写不完全匹配,将引发异常.
在分析这个值时,是否需要忽略大小写?
您可以使用ConfigurationConverterBase创建自定义配置转换器,请参见http://msdn.microsoft.com/en-us/library/system.configuration.configurationconverterbase.aspx
这将完成以下工作:
public class CaseInsensitiveEnumConfigConverter<T> : ConfigurationConverterBase
{
public override object ConvertFrom(
ITypeDescriptorContext ctx, CultureInfo ci, object data)
{
return Enum.Parse(typeof(T), (string)data, true);
}
}
然后在你的财产上:
[ConfigurationProperty("unit", DefaultValue = MeasurementUnits.Pixel)]
[TypeConverter(typeof(CaseInsensitiveEnumConfigConverter<MeasurementUnits>))]
public MeasurementUnits Unit { get { return (MeasurementUnits)this["unit"]; } }
public enum MeasurementUnits
{
Pixel,
Inches,
Points,
MM,
}