2017-01-06 1 views
0

I (버전 4.2)등록 AutoMapper는

public class ModelMapperProfile : Profile 
{ 

    protected override void Configure() 
    { 
     CreateMap<Case, CaseModel>(); 
     CreateMap<CaseDetail, CaseDetailModel>(); 
    } 
} 
public static class AutoMapperService 
{ 
    public static MapperConfiguration Initialize() 
    { 
     MapperConfiguration config = new MapperConfiguration(cfg => 
     { 
      cfg.AddProfile<ModelMapperProfile>(); 
     }); 

     return config; 
    } 
} 

그리고 다음과 같이 일치를 사용하여 종속성을 등록 ... 맵핑을 등록하려면 다음 코드를 여기

public static void RegisterTypes(IUnityContainer container) 
{ 

    container.LoadConfiguration(); 
    var mapper = AutoMapperService.Initialize() 
           .CreateMapper(); 
    container.RegisterInstance<IMapper>(mapper); 
} 

내 서비스 생성자 실패 ..

public TaxLiabilityCaseService(IMapper mapper, 
     IUnitOfWork unitofWork, 
     IRepository<Case> caseR, 
     IRepository<CaseDetail> caseDetailR) 
    { 
     _mapper = mapper; 
     _unitofWork = unitofWork; 
     _caseR = caseR; 
     _caseDetailR = caseDetailR; 
    } 

내가 가지고 다음과 같은 오류 메시지가 ..

현재 유형 인 AutoMapper.IMapper는 인터페이스이며 구성 할 수 없습니다. 형식 매핑이 누락 되었습니까?

Answers found here did not work for me

내가

답변

1

보십시오 다음 단계 (MVC5) 다음 여기에 실종입니다 무엇 :

유니티 Nuget 패키지 가져 오기 :

public class MapperConfig 
    { 
     public static IMapper Mapper { get; set; } 
     public static void RegisterProfiles() 
     { 
      var config = new MapperConfiguration(cfg => 
      { 
       // add profiles here 
      }); 
      config.AssertConfigurationIsValid(); 
      Mapper = config.CreateMapper(); 
     } 
    } 
:

Unity.Mvc5 

이 클래스를 만들기를 (패키지에 의해 생성)을 UnityConfig 파일에서 16,

이 추가 :

public static void RegisterComponents() 
    { 
      var container = new UnityContainer(); 
      container.RegisterInstance<IMapper>(MapperConfig.Mapper); 
    } 

Global.asax에서 다음을 추가

protected void Application_Start() 
     { 
      MapperConfig.RegisterProfiles(); 
      UnityConfig.RegisterComponents(); 
     } 

당신은이 후 잘되어야합니다.

+0

첫 번째 문제 : 등록 할 실제 개체가 필요하므로 null이 허용되지 않습니다. –

+0

@ user2984500 ... 어떤 종류의 프로젝트에 참여하고 있습니까? "매퍼"란 무엇입니까? 올바른 방향으로 가고 있지만 제대로 구조화해야합니다. –

+0

이것은 MVC 5이며 AutoMapper를 연결하여 Entity와 Model간에 매핑을 시도합니다. "WebActivatorEx.PreApplicationStartMethod"를 사용하여 종속성을 부트 스트랩합니다 (단일성). –

관련 문제