silverlight TypeDescriptor.GetConverter替代品

luk*_*uke 11 c# silverlight type-conversion

我正在尝试在silverlight中使用LINQ to CSV项目(这是一个伟大的项目),因为它的开源我认为我可以重新编译为silverlight类库但不幸的是它似乎使用了silverlight中没有的功能.该TypeDescriptor.GetConverter方法.

它使用它来查找类型转换器以将csv列正确解析为其对应的CLR类型.我没有问题更改linqtocsv源以使其在Silverlight中工作,但我只是不知道Silverlight中的等效操作是什么.各种谷歌搜索带我到这个页面,但所有这一切都说XAML解析器有一种方法(但它没有说明如何访问此功能).

简而言之,问题是:

我如何复制功能TypeDescriptor.GetConverter

我不一定需要一个确切的替换,我只是想知道一个很好的方法来做到这一点,而无需硬编码一堆类型<---> typeconverter关联.

Mar*_*ell 8

在轻型框架上,您的选择有限; 我不会回避一点硬编码,特别是如果你只需要支持核心类型.它也比完整TypeConverter选项更简单,更快捷.就像是:

    static object Parse(Type type, string s)
    {
        switch (Type.GetTypeCode(type))
        {
            case TypeCode.Boolean: return bool.Parse(s);
            case TypeCode.Byte: return byte.Parse(s);
            case TypeCode.Char: return s[0];
            case TypeCode.DateTime: return DateTime.Parse(s);
                ...
        }
    }
Run Code Online (Sandbox Code Playgroud)