代码之家  ›  专栏  ›  技术社区  ›  Anthony Johnston

MVC 2和TypeConverters,在convertFrom中获取上下文为空的目标类型

  •  1
  • Anthony Johnston  · 技术社区  · 14 年前

    我在我的项目中的基类上有一个类型转换器。

    [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)
    

    有人遇到这个问题吗? 如果有的话,你还有工作要做吗?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Anthony Johnston    14 年前

    我们终于做到了;

    1. 获取对象的类型转换器
    2. 创建实现ITypedDescriptorContext的代理上下文类
    3. 创建具有所需类型集的属性描述符

    在CanConvertFrom方法中添加了对空上下文的检查,以检查上述情况。

    这是有点怀念从微软这个,在我看来,您的类型转换应该是可用的。只有在使用我们实现的ModelBinder时,这种方法才有效。

    啊,好吧,我克服了它