ConfigurationConverterBase Class
[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]
The base class for the configuration converter types.
System.ComponentModel.TypeConverter
System.Configuration.ConfigurationConverterBase
More...
Namespace: System.Configuration
Assembly: System.Configuration (in System.Configuration.dll)
The ConfigurationConverterBase type exposes the following members.
| Name | Description | |
|---|---|---|
|
ConfigurationConverterBase | Initializes a new instance of the ConfigurationConverterBase class. |
| Name | Description | |
|---|---|---|
|
CanConvertFrom(Type) | Returns whether this converter can convert an object of the given type to the type of this converter. (Inherited from TypeConverter.) |
|
CanConvertFrom(ITypeDescriptorContext, Type) | Determines whether the conversion is allowed. (Overrides TypeConverter.CanConvertFrom(ITypeDescriptorContext, Type).) |
|
CanConvertTo(Type) | Returns whether this converter can convert the object to the specified type. (Inherited from TypeConverter.) |
|
CanConvertTo(ITypeDescriptorContext, Type) | Determines whether the conversion is allowed. (Overrides TypeConverter.CanConvertTo(ITypeDescriptorContext, Type).) |
|
ConvertFrom(Object) | Converts the given value to the type of this converter. (Inherited from TypeConverter.) |
|
ConvertFrom(ITypeDescriptorContext, CultureInfo, Object) | Converts the given object to the type of this converter, using the specified context and culture information. (Inherited from TypeConverter.) |
|
ConvertFromInvariantString(String) | Converts the given string to the type of this converter, using the invariant culture. (Inherited from TypeConverter.) |
|
ConvertFromInvariantString(ITypeDescriptorContext, String) | Converts the given string to the type of this converter, using the invariant culture and the specified context. (Inherited from TypeConverter.) |
|
ConvertFromString(String) | Converts the specified text to an object. (Inherited from TypeConverter.) |
|
ConvertFromString(ITypeDescriptorContext, String) | Converts the given text to an object, using the specified context. (Inherited from TypeConverter.) |
|
ConvertFromString(ITypeDescriptorContext, CultureInfo, String) | Converts the given text to an object, using the specified context and culture information. (Inherited from TypeConverter.) |
|
ConvertTo(Object, Type) | Converts the given value object to the specified type, using the arguments. (Inherited from TypeConverter.) |
|
ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) | Converts the given value object to the specified type, using the specified context and culture information. (Inherited from TypeConverter.) |
|
ConvertToInvariantString(Object) | Converts the specified value to a culture-invariant string representation. (Inherited from TypeConverter.) |
|
ConvertToInvariantString(ITypeDescriptorContext, Object) | Converts the specified value to a culture-invariant string representation, using the specified context. (Inherited from TypeConverter.) |
|
ConvertToString(Object) | Converts the specified value to a string representation. (Inherited from TypeConverter.) |
|
ConvertToString(ITypeDescriptorContext, Object) | Converts the given value to a string representation, using the given context. (Inherited from TypeConverter.) |
|
ConvertToString(ITypeDescriptorContext, CultureInfo, Object) | Converts the given value to a string representation, using the specified context and culture information. (Inherited from TypeConverter.) |
|
CreateInstance(IDictionary) | Re-creates an Object given a set of property values for the object. (Inherited from TypeConverter.) |
|
CreateInstance(ITypeDescriptorContext, IDictionary) | Creates an instance of the type that this TypeConverter is associated with, using the specified context, given a set of property values for the object. (Inherited from TypeConverter.) |
|
Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
|
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
|
GetConvertFromException | Returns an exception to throw when a conversion cannot be performed. (Inherited from TypeConverter.) |
|
GetConvertToException | Returns an exception to throw when a conversion cannot be performed. (Inherited from TypeConverter.) |
|
GetCreateInstanceSupported() | Returns whether changing a value on this object requires a call to the CreateInstance method to create a new value. (Inherited from TypeConverter.) |
|
GetCreateInstanceSupported(ITypeDescriptorContext) | Returns whether changing a value on this object requires a call to CreateInstance to create a new value, using the specified context. (Inherited from TypeConverter.) |
|
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
|
GetProperties(Object) | Returns a collection of properties for the type of array specified by the value parameter. (Inherited from TypeConverter.) |
|
GetProperties(ITypeDescriptorContext, Object) | Returns a collection of properties for the type of array specified by the value parameter, using the specified context. (Inherited from TypeConverter.) |
|
GetProperties(ITypeDescriptorContext, Object, Attribute[]) | Returns a collection of properties for the type of array specified by the value parameter, using the specified context and attributes. (Inherited from TypeConverter.) |
|
GetPropertiesSupported() | Returns whether this object supports properties. (Inherited from TypeConverter.) |
|
GetPropertiesSupported(ITypeDescriptorContext) | Returns whether this object supports properties, using the specified context. (Inherited from TypeConverter.) |
|
GetStandardValues() | Returns a collection of standard values from the default context for the data type this type converter is designed for. (Inherited from TypeConverter.) |
|
GetStandardValues(ITypeDescriptorContext) | Returns a collection of standard values for the data type this type converter is designed for when provided with a format context. (Inherited from TypeConverter.) |
|
GetStandardValuesExclusive() | Returns whether the collection of standard values returned from GetStandardValues is an exclusive list. (Inherited from TypeConverter.) |
|
GetStandardValuesExclusive(ITypeDescriptorContext) | Returns whether the collection of standard values returned from GetStandardValues is an exclusive list of possible values, using the specified context. (Inherited from TypeConverter.) |
|
GetStandardValuesSupported() | Returns whether this object supports a standard set of values that can be picked from a list. (Inherited from TypeConverter.) |
|
GetStandardValuesSupported(ITypeDescriptorContext) | Returns whether this object supports a standard set of values that can be picked from a list, using the specified context. (Inherited from TypeConverter.) |
|
GetType | Gets the Type of the current instance. (Inherited from Object.) |
|
IsValid(Object) | Returns whether the given value object is valid for this type. (Inherited from TypeConverter.) |
|
IsValid(ITypeDescriptorContext, Object) | Returns whether the given value object is valid for this type and for the specified context. (Inherited from TypeConverter.) |
|
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
|
SortProperties | Sorts a collection of properties. (Inherited from TypeConverter.) |
|
ToString | Returns a string that represents the current object. (Inherited from Object.) |
The following code examples show how to derive from the ConfigurationConverterBase class to create a custom TimeSpan converter type. Also, the examples show how to use this type in a custom section.
The following code example shows how to create a custom TimeSpan converter type from the ConfigurationConverterBase class.
using System; using System.Collections.Generic; using System.Text; using System.Configuration; using System.Globalization; using System.ComponentModel; public sealed class CustomTimeSpanMinutesConverter : ConfigurationConverterBase { internal bool ValidateType(object value, Type expected) { bool result; if ((value != null) && (value.GetType() != expected)) result = false; else result = true; return result; } public override bool CanConvertTo( ITypeDescriptorContext ctx, Type type) { return (type == typeof(string)); } public override bool CanConvertFrom( ITypeDescriptorContext ctx, Type type) { return (type == typeof(string)); } public override object ConvertTo( ITypeDescriptorContext ctx, CultureInfo ci, object value, Type type) { ValidateType(value, typeof(TimeSpan)); long data = (long)(((TimeSpan)value).TotalMinutes); return data.ToString(CultureInfo.InvariantCulture); } public override object ConvertFrom( ITypeDescriptorContext ctx, CultureInfo ci, object data) { long min = long.Parse((string)data, CultureInfo.InvariantCulture); return TimeSpan.FromMinutes((double)min); } }
The following code example shows how to define a custom section that uses the previous custom TimeSpan converter.
// Define a custom section.
public sealed class CustomSection :
ConfigurationSection
{
public CustomSection()
{
}
[ConfigurationProperty("fileName", DefaultValue=" default.txt ")]
[TypeConverter(typeof(WhiteSpaceTrimStringConverter))]
public String FileName
{
get
{
return (String)this["fileName"];
}
set
{
this["fileName"] = value;
}
}
[ConfigurationProperty("maxIdleTime")]
[TypeConverter(typeof(CustomizedTimeSpanMinutesConverter))]
public TimeSpan MaxIdleTime
{
get
{
return (TimeSpan)this["maxIdleTime"];
}
set
{
this["maxIdleTime"] = value;
}
}
[ConfigurationProperty("timeDelay",
DefaultValue = "infinite")]
[TypeConverter(typeof(InfiniteTimeSpanConverter))]
public TimeSpan TimeDelay
{
get
{
return (TimeSpan)this["timeDelay"];
}
set
{
this["timeDelay"] = value;
}
}
[ConfigurationProperty("cdStr",
DefaultValue = "str0, str1",
IsRequired = true)]
[TypeConverter(typeof(
CommaDelimitedStringCollectionConverter))]
public StringCollection CdStr
{
get
{
return (StringCollection)this["cdStr"];
}
set
{
this["cdStr"] = value;
}
}
public enum Permissions
{
FullControl = 0,
Modify = 1,
ReadExecute = 2,
Read = 3,
Write = 4,
SpecialPermissions = 5
}
[ConfigurationProperty("permission", DefaultValue = Permissions.Read)]
public Permissions Permission
{
get
{
return (Permissions)this["permission"];
}
set
{
this["permission"] = value;
}
}
[ConfigurationProperty("maxUsers", DefaultValue="infinite")]
[TypeConverter(typeof(InfiniteIntConverter))]
public int MaxUsers
{
get
{
return (int)this["maxUsers"];
}
set
{
this["maxUsers"] = value;
}
}
}
}
The following code example shows how to create and modify a configuration file using the previous custom section.
using System; using System.Collections.Generic; using System.Text; using System.Configuration; using System.Globalization; using System.ComponentModel; namespace Samples.AspNet { // Define a custom section. public sealed class CustomSection : ConfigurationSection { public CustomSection() { } [ConfigurationProperty("fileName", DefaultValue = "default.txt", IsRequired = true, IsKey = false)] [StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\", MinLength = 1, MaxLength = 60)] public string FileName { get { return (string)this["fileName"]; } set { this["fileName"] = value; } } [ConfigurationProperty("maxIdleTime")] [TypeConverter(typeof(TsMinutesConverter))] public TimeSpan MaxIdleTime { get { return (TimeSpan)this["maxIdleTime"]; } set { this["maxIdleTime"] = value; } } } public sealed class TsMinutesConverter : ConfigurationConverterBase { internal bool ValidateType(object value, Type expected) { bool result; if ((value != null) && (value.GetType() != expected)) result = false; else result = true; return result; } public override bool CanConvertTo( ITypeDescriptorContext ctx, Type type) { return (type == typeof(string)); } public override bool CanConvertFrom( ITypeDescriptorContext ctx, Type type) { return (type == typeof(string)); } public override object ConvertTo( ITypeDescriptorContext ctx, CultureInfo ci, object value, Type type) { ValidateType(value, typeof(TimeSpan)); long data = (long)(((TimeSpan)value).TotalMinutes); return data.ToString(CultureInfo.InvariantCulture); } public override object ConvertFrom( ITypeDescriptorContext ctx, CultureInfo ci, object data) { long min = long.Parse((string)data, CultureInfo.InvariantCulture); return TimeSpan.FromMinutes((double)min); } } class UsingConfigutationConverterBase { // Create a custom section. static void CreateSection() { try { CustomSection customSection; // Get the current configuration file. System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration( ConfigurationUserLevel.None); // Create the section entry // in the <configSections> and the // related target section in <configuration>. if (config.Sections["CustomSection"] == null) { customSection = new CustomSection(); config.Sections.Add("CustomSection", customSection); customSection.SectionInformation.ForceSave = true; config.Save(ConfigurationSaveMode.Full); } } catch (ConfigurationErrorsException err) { Console.WriteLine(err.ToString()); } } // Change custom section and write it to disk. static void SerializeCustomSection() { try { System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration( ConfigurationUserLevel.None); CustomSection customSection = config.Sections.Get("CustomSection") as CustomSection; TimeSpan ts = new TimeSpan(1, 30, 30); customSection.MaxIdleTime = ts; config.Save(); string maxIdleTime = customSection.MaxIdleTime.ToString(); Console.WriteLine("New max idle time: {0}", maxIdleTime); } catch (Exception e) { Console.WriteLine(e.ToString()); } } // Read custom section from disk. static void DeserializeCustomSection() { try { System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration( ConfigurationUserLevel.None); CustomSection customSection = config.Sections.Get("CustomSection") as CustomSection; TimeSpan maxIdleTime = customSection.MaxIdleTime; Console.WriteLine("Max idle time: {0}", maxIdleTime.ToString()); } catch (Exception e) { Console.WriteLine(e.ToString()); } } static void Main(string[] args) { CreateSection(); SerializeCustomSection(); DeserializeCustomSection(); } } }
The following is a configuration excerpt as used by the previous example.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="CustomSection"
type="Samples.AspNet.CustomSection,
ConfigurationConverters,
Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null"
allowDefinition="Everywhere"
allowExeDefinition="MachineToApplication"
restartOnExternalChanges="true" />
</configSections>
<CustomSection fileName="default.txt" maxIdleTime="90" />
</configuration>
Windows 8 Consumer Preview, Windows Server 8 Beta, Windows 7, Windows Server 2008 SP2, Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
System.ComponentModel.TypeConverter
System.Configuration.ConfigurationConverterBase
System.Configuration.CommaDelimitedStringCollectionConverter
System.Configuration.GenericEnumConverter
System.Configuration.InfiniteIntConverter
System.Configuration.InfiniteTimeSpanConverter
System.Configuration.TimeSpanMinutesConverter
System.Configuration.TimeSpanSecondsConverter
System.Configuration.TypeNameConverter
System.Configuration.WhiteSpaceTrimStringConverter
System.Web.Configuration.MachineKeyValidationConverter
System.Web.UI.MobileControls.MobileTypeNameConverter