dotnet/runtime

Support TypeConverterAttribute on bound properties

Open

#36,545 opened on Mar 18, 2017

View on GitHub
 (10 comments) (17 reactions) (0 assignees)C# (5,445 forks)batch import
area-Extensions-Configurationfeature-requesthelp wanted

Repository metrics

Stars
 (17,886 stars)
PR merge metrics
 (Avg merge 12d 11h) (661 merged PRs in 30d)

Description

It's very difficult to add a custom TypeConverter for framework types to have them bind correctly within ConfigurationBinder. The documentation for TypeConverterAttribute specifies that the attribute can be attached to a property, and that property will then use the specified TypeConverter during serialization/deserialization. Unfortunately, ConfigurationBinder doesn't take the property's attributes into consideration during BindProperty, instead passing the binding off to BindInstance with just the type of the property.

Presently, the only way to use custom TypeConverters is to register them using TypeDescriptor.AddAttributes before any configuration binding occurs, which is inconvenient if your library requires custom TypeConverters for standard types.

Contributor guide