2010-11-19 147 views
7

您好我正在使用AutoMapper從模型移動到Dto,它的工作很好。 在一個TypeConverter我需要注入一個接口(一個服務),必須由類型轉換器使用,以進行轉換。AutoMapper TypeConverter自定義構造函數

如何在AutoMapper中完成此操作?

+0

其中扶養注射包您使用? – BeRecursive 2010-11-19 16:55:35

回答

12

你能不能在你的TypeConverter類上創建一個構造函數來接受這個服務?而不是使用通用ConvertUsing,通過與服務構建了您的TypeConverter的新實例...

public class MyTypeConverter : TypeConverter<String, String> 
    { 
     public MyTypeConverter(IMyService service) 
     { 
      MyService = service; 
     } 

     public IMyService MyService { get; set; } 

     protected override string ConvertCore(string source) 
     { 
      //use service 
     } 
    } 

用法:

 Mapper.CreateMap<string, string>() 
        .ConvertUsing(new MyTypeConverter(_myService)); 
+0

哦,是的,我不知道我能做到這一點。我正在使用其他方法ConvertUsing () – Raffaeu 2010-11-19 17:13:42

+2

如果您需要的服務是'IMapper',那麼'ITypeConverter <>。Convert()'方法中的現成'ResolutionContext上下文'提供當前映射器。 – 2016-05-11 17:30:45

+0

偉大的評論克里斯沃爾什親密 – 2018-02-08 21:37:39