I'm using a DataTable
and assigning columns different types. I have a scenario where I'm receiving String
data and I want to parse it based on the column's assigned type, but I can't figure out how to get开发者_如何学JAVA to the parse methods.
Is is it possible to access the Type instance's parse methods in a generic way?
You're looking for Convert.ChangeType
.
If you are using anything more than basic types (that Convert.ChangeType
handles quite nicely), the preferred way of doing this is via the TypeConverter
:
var converter = TypeDescriptor.GetConverter(type);
object val = converter.ConvertFromString(s); // note various overloads,
// or ConvertFromInvariantString
This is convenient because this model can be extended to recognise additional types (or change the implementation for existing types), both at compile-time (adding [TypeConverter(...)]
) or at run-time (TypeDescriptor.AddAttributes(...)
).
精彩评论