MVC 2 & TypeConverters,在上下文为 null 的 ConvertFrom 中获取目标类型
-
26-09-2019 - |
题
我的项目的基类上有一个 TypeConverter 。
[TypeConverter(typeof(CodeTypeConverter))]
abstract class CodeBase
我有许多继承这个基础的类
class TitleCode : CodeBase
class PreferenceCode : CodeBase
当调用类型转换器 (ValueProvider.ConvertSimpleType) 的事物时,它不会创建上下文,因此 ConvertFrom 不会被告知目标类型,因此它可以执行转换。
public override object ConvertFrom(
ITypeDescriptorContext context, // this is null
CultureInfo culture,
object value)
有人遇到过这个问题吗?如果是这样,你有解决办法吗?
解决方案
我们最终做到了这一点;
- 获取对象的 TypeConverter
- 创建实现 ITypeDescriptorContext 的代理上下文类
- 创建具有所需类型集的属性描述符
对于上述情况,CanConvertFrom 方法中添加了对 null 上下文的检查
MS 有点错过了这一点,在我看来,你转换到的类型应该是可用的。这种解决方法仅在使用我们实现的 ModelBinder 时有效。
啊,好吧,我克服了它
不隶属于 StackOverflow