Unable to find a converter that supports conversion to/from string for the property of type 'Type'
I'm writing a custom config class in C# an开发者_开发百科d .NET 3.5. One of the properties should be of type System.Type. When I run the code I get the error mentioned in the title.
[ConfigurationProperty("alertType", IsRequired = true)]
public Type AlertType
{
get { return (Type)this["alertType"]; }
set { this["alertType"] = value; }
}
The config file looks like this:
<add name="Name" pollingInterval="60" alertType="Namespace.ClassName, Company.Project" />
The .net framework is able to cast a string into System.Type, because the configSections of the config file has a type attribute. The question is how do they do it.
I know this is old, but I think this is actually the correct answer:
[TypeConverter(typeof(TypeNameConverter))]
[ConfigurationProperty("alertType", IsRequired=true)]
public Type AlertType
{
get { return this[ "alertType" ] as Type; }
set { this[ "alertType" ] = value; }
}
Adding the TypeNameConverter makes the transformation from String to Type happen without using Type.GetType().
I think you're looking for Type.GetType Method (String)
You can try using the TypeNameConverter class. It has two methods you may be interested in:
ConvertToString
and ConvertFromString
精彩评论