我正在尝试使用 LINQ to CSV silverlight 中的项目(这是一个伟大的项目),因为它是开源的,我想我可以重新编译为 silverlight 类库,但不幸的是它似乎使用了 silverlight 中不可用的功能。 TypeDescriptor.GetConverter方法。
它使用它来查找类型转换器以正确地将 csv 列解析为其相应的 CLR 类型。我可以毫无问题地更改 linqtocsv 源以使其在 Silverlight 中工作,但我只是不知道在 Silverlight 中会有什么等效操作。各种谷歌搜索把我带到这个page ,但这只是说 XAML 解析器有一种方法可以执行此操作(但它没有说明如何访问此功能)。
简而言之,问题是:
如何复制 TypeDescriptor.GetConverter
的功能?
我不一定需要完全减少替换,我只是想知道一个不用硬编码一堆类型 <---> typeconverter 关联的好方法。
最佳答案
在轻型框架上,您的选择有限;我不会回避一些硬编码,特别是如果您只需要支持核心类型。它还将比完整的 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);
...
}
}
关于c# - silverlight TypeDescriptor.GetConverter 替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2962780/