2011-11-17 11 views
13

'da değiştirilmiştir. ITypeConverter arabirimi, Dönüştürme yöntemi için "TDestination Convert (TSource kaynağı)" yerine "TDestination Convert (ResolutionContext içeriği)" olacak şekilde değiştirilmiştir. Benim haritacılar gibi yeni mapper içinITypeConverter arabirimi, AutoMapper 2.0

'BusinessFacade.Mappers.DecimalToNullableInt' does not implement interface member 'AutoMapper.ITypeConverter.Convert(AutoMapper.ResolutionContext)'

Herhangi iyi Tam örneği: Benim kod

http://automapper.codeplex.com/wikipage?title=Custom%20Type%20Converters

, şimdi bu hatayı alıyorum? Ben ITypeConverter arayüzü "TDestination sahip olarak değiştirildi

public class DecimalToNullableInt : ITypeConverter<decimal, int?> 
    { 
     public int? Convert(decimal source) 
     { 
      if (source == 0) 
       return null; 
      return (int)source; 
     } 
    } 

GÜNCELLEME My mapper

... benim projelerde herhangi bir kod (ya da minimum kod) değiştirmek istemiyoruz Convert yöntemi için "TDestination Convert (TSource source)" yerine (ResolutionContext içeriği) "dönüştürün.

belgelerin güncelliğini yitirmiş durumda. Temel bir TypeConverter kolaylık sınıfı olarak iyi bir ITypeConverter, vardır. ITypeConverter ortaya çıkarırken, TypeConverter, ResolutionContext dosyasını gizler.

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

cevap

15

Sen ResolutionContext.SourceValue özelliğinden ondalık kapmak gerekecek:

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