Mittwoch, 29. August 2012

Kenne dein Framework - TypeConverter

Auch wenn wenn wir in der .NET bzw. ASP.NET MVC-Welt dank EntityFramework und ModelBinder nicht mehr so oft gezwungen sind Strings manuell in Zahlen- und Wahrheitswerte umwandeln zu müssen, kommt es hin und wieder dann doch vor.

Wenn man nun weiß, dass die Strings immer zu - sagen wir mal - Decimals umgewandelt werden müsste bietet sich natürlich Convert.ToDecimal(derWertAlsString) an. Manchmal muss weiß man aber erst zur
Laufzeit mit was für Typen man zu tun hat, hier bieten sich TypeConverter an.

Hier ein Beispiel wie so etwas aussehen kann:
var stringValue = "1234";
Type type = GetTypeAtRuntime(...);
var converter = TypeDescriptor.GetConverter(type);
var obj = converter.ConvertFrom(stringValue);
Wobei GetTypeAtRuntime() dann entsprechend sinnvoll zu implementieren ist.