替换“TypeDescriptor”类(因为它没有在Windows Phone 7上实现)?

时间:2010-09-26 21:28:58

标签: windows-phone-7

我有一个非常简单的函数,我写了大约一百万年后试图将字符串转换为另一种类型。适用于值类型,数字,枚举,日期时间等,因此我在解析xml文件值,Web请求结果 - 无论如何时始终使用它。

但是我的代码无法在Windows Phone 7上运行,因为未实现“TypeDescriptor”对象(请参阅下面的PC代码示例)。关于如何实现一个非常简单的字符串的任何建议 - >手机上的转换器?

这是我现有的代码(为非手机编写):

    internal T ChangeType<T>(object o)
    {
        Type typeOfT = typeof(T);

        // null
        if (o == null)
        {
            return default(T);
        }

        // are types the same
        if (typeOfT == o.GetType())
        {
            return (T)o;
        }

        // these are different type - try to see
        // if there's a built in convertor
        // NOTE: "TypeDescriptor" not implemented on Windows Phone 7
        TypeConverter convertor = TypeDescriptor.GetConverter(typeOfT); 
        if (convertor.CanConvertFrom(o.GetType()))
        {
            return (T)convertor.ConvertFrom(o);
        }
        else
        {
            throw new Exception("Can not convert value to type: " + typeOfT.Name);
        }

    }

1 个答案:

答案 0 :(得分:1)

How to: Implement a Type Converter上有一篇MSDN文章。

是的,与完整框架中存在的相比,这有点重新发明轮子。不幸的是,这是我们在Compact Framework中要处理的一个问题。