Подтвердить что ты не робот

Интерфейс ITypeConverter был изменен в AutoMapper 2.0

Интерфейс ITypeConverter был изменен, чтобы вместо "преобразования TDestination Convert (источник TSource)" был преобразован "TDestination Convert (contextContext context)" для метода Convert.

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;
        }
    }

UPDATE

Интерфейс ITypeConverter был изменен, чтобы вместо "преобразования TDestination Convert (источник TSource)" был преобразован "TDestination Convert (contextContext context)" для метода Convert.

документация просто устарела. Существует 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

4b9b3361

Ответ 1

Вам придется взять десятичное значение из свойства ResolutionContext.SourceValue:

    public int? Convert(ResolutionContext context)
    {
        var d = (decimal)context.SourceValue;
        if (d == 0)
        {
            return null;
        }
        return (int) d;
    }