我的转换器看起来像这样,好像它永远不会进入Convert方法或_source始终为null。谁能告诉我哪里错了?
class NullableToNullableConverter<T> : ITypeConverter<T?, T?> where T : struct
{
public T? Convert(T? source, T? destination, ResolutionContext context)
{
var _source = source as T?;
if (_source.HasValue)
return _source.Value;
else
return default(T?);
}
}
更新: 好吧,我不知道原因,但不知何故在配置中我有以下代码按此顺序放置导致转换器方法不被命中。一旦重新安排了转换和投影,它就开始起作用了。我现在想知道的是这种行为的原因是什么。
x.CreateMap<DateTime?, DateTime?>().ProjectUsing(y => y ?? default(DateTime?));
x.CreateMap<DateTime?, DateTime?>().ConvertUsing<NullableToNullableConverter<DateTime>>();