2017-01-05 4 views
0

새 버전의 AutoMapper에서 IValueResolver 인터페이스를 구현하려고했습니다. 다음 난, ResolveUsing 문맥AutoMapper IValueResolver가 오류를 throw합니다. 형식을 generic 형식 또는 메서드의 형식 매개 변수 'TValueResolver'로 사용할 수 없습니다.

에러 19 종류 에러를 얻고있어 여기

var config = new MapperConfiguration(cfg => 
     { 
     cfg.CreateMap<Resource, GanttResource>() 
       .ForMember(dst => dst.TypeName, opt => opt.ResolveUsing<ResourceTypeResolver>())); 
     } 

구성

매퍼 내측이 ResourceTypeResolver를 사용하면 난 ..

public interface IValueResolver<in TSource, in TDestination, TDestMember> 
{ 
    TDestMember Resolve(TSource source, TDestination destination, TDestMember destMember, ResolutionContext context); 
} 

public class ResourceTypeResolver : IValueResolver<PMEasy.Model.Entity.Resource, PMEasy.Web.Models.Gantt.GanttResource, string> 
{ 
    private ILookupService LookupService; 
    public ResourceTypeResolver(ILookupService lookupService) 
    { 
     LookupService = lookupService; 
    } 
    public string Resolve(PMEasy.Model.Entity.Resource source, PMEasy.Web.Models.Gantt.GanttResource destination, string member, ResolutionContext context) 
    { 
     if (source.Type.HasValue && source.Type != Guid.Empty) 
     { 
      var resourceType = LookupService.GetLookupListByName("ResourceType").Where(con => con.GUID == source.Type.Value).FirstOrDefault(); 
      return resourceType != null ? resourceType.Value : string.Empty; 
     } 
     else return "Work"; 
    } 
} 

ResourceTypeResolver 클래스 구현 'PMEasy.Web.AutoMapper.ResourceTypeResolver'는 제네릭 형식 또는 메서드 'AutoMapper.IMemberConfigurationExpression.ResolveUsing()'에서 형식 매개 변수 'TValueResolver'로 사용할 수 없습니다. 'PMEasy.Web.AutoMapper.ResourceTypeResolver'에서 'AutoMapper.IValueResolver'로의 암시 적 참조 변환은 없습니다. D : \ PMEasy \ Development \ PMEasyDev \ PMEasy.Web \ App_Start \ AutoMapperConfig.cs 58 59 PMEasy.Web

어떤 아이디어로이 문제를 해결할 수 있습니까?

답변

1

자동 프린터의 인터페이스를 사용하여 IValueResolver<in TSource, in TDestination, TDestMember> 인터페이스를 만들었습니다. Soo, 인터페이스 정의를 제거하십시오.

+0

위대한 !! 나는 IValueResolver를 제거하고 잘 동작한다. –