Es gibt keine TypeConverter Klasse in der WinRT und das Team hat keine Pläne angekündigt, es in eine zukünftige Version aufzunehmen. Sie haben eine Reihe von Optionen.
Option 1: Wenn die Umwandlung ist als Teil eines Datenbindung Gebrauch gemacht werden die IValueConverter Schnittstelle als Dennis erwähnt.
Option 2: Wenn Sie sind der Schöpfer des Typs Sie Ihre eigene explizite oder implizite Operatoren hinzufügen Gießen unterstützen:
http://msdn.microsoft.com/en-US/library/xhbhezf4(v=vs.80).aspx
http://msdn.microsoft.com/en-US/library/z5z9kes2(v=vs.80).aspx
Option 3: Sie könnte eine eigene TypeConverter-Klasse erstellen.
Option 4: (So wie ich es tun würde, wenn sie nicht Teil einer Bindung) Sie können Ihre eigene Erweiterungsmethoden hinzufügen:
static public class ConverterExtensions
{
static public string ToFixedString(this double value)
{
return value.ToString("D");
}
}
Welche lassen würden Sie Code wie folgt schreiben:
double d = 123.45;
string str = d.ToFixedString(); // str now equals "123"
'TypConverter' ist eigentlich eine ziemlich komplexe API, vor allem, wenn Sie alle Upstream-Rohrleitungen betrachten; Für Winrt, ja: Es ist ziemlich minimal - also: Um Ihre Frage zu beantworten, müssen wir wissen, welche Szenarien Sie unterstützen müssen. –
Konvertieren einer Zeichenfolge in einen beliebigen integrierten Typ und zurück in eine Zeichenfolge. Hier kommen alle eingebauten Konverter, wie 'StringConverter' zum Einsatz. Ich verwende auch 'TypeDescriptor.GetConverter' und alle anderen Klassen, die um diese herum verwendet werden. Ich könnte nur die Funktionen implementieren, die ich benötige, indem ich einen "MissingFromRt45" -Satz von Klassen erstelle, aber es sieht so aus, als wäre die Liste der Klassen ziemlich groß. –
Glaubst du, es wäre vorteilhafter, alle 'TypeConverter'-Dateien, die ich verwende, zu entfernen und sie in ein benutzerdefiniertes Typ-Konvertierungs-Setup umzuwandeln? Auf diese Weise funktioniert es unabhängig von der .NET-Version, auf der es ausgeführt wird. –