对于Convert方法,ITypeConverter接口已更改为“TDestination Convert(ResolutionContext context)”而不是“TDestination Convert(TSource source)”。
http://automapper.codeplex.com/wikipage?title=Custom%20Type%20Converters
在我的代码中,现在我收到了这个错误:
'BusinessFacade.Mappers.DecimalToNullableInt'未实现 接口成员 'AutoMapper.ITypeConverter.Convert(AutoMapper.ResolutionContext)'
像我的地图选手一样,新地图的完整样本是什么?我不希望在我的项目中更改任何代码(或最小代码)......
我的映射器
public class DecimalToNullableInt : ITypeConverter<decimal, int?>
{
public int? Convert(decimal source)
{
if (source == 0)
return null;
return (int)source;
}
}
更新
对于Convert方法,ITypeConverter接口已更改为“TDestination Convert(ResolutionContext context)”而不是“TDestination Convert(TSource source)”。
文档刚刚过时。有一个ITypeConverter,如 以及TypeConverter的基本便利类。 TypeConverter隐藏了 ResolutionContext,而ITypeConverter公开它。
http://automapper.codeplex.com/wikipage?title=Custom%20Type%20Converters
https://github.com/AutoMapper/AutoMapper/wiki/Custom-type-converters
http://groups.google.com/group/automapper-users/browse_thread/thread/6c523b95932f4747
答案 0 :(得分:15)
您必须从ResolutionContext.SourceValue
属性中获取小数:
public int? Convert(ResolutionContext context)
{
var d = (decimal)context.SourceValue;
if (d == 0)
{
return null;
}
return (int) d;
}