2013-09-07 4 views
2

안녕하세요, 내 응용 프로그램에 AutoMapper를 추가하려고합니다. 그러나 eintegrationg.HEre에서 문제가있는 것 같습니다. 지금까지 내가 가지고있는 것입니다. 내가 구성 파일을 생성 한예외가 CreateMap에 throw됩니다.

public class AutoMapper : IAutoMapper 
{ 
    public void CreateMap<TFrom, TTo>() 
    { 
     Mapper.CreateMap<TFrom, TTo>(); 
    } 

    public TTo Map<TFrom, TTo>(TFrom data) 
    { 
     return Mapper.Map<TFrom, TTo>(data); 
    } 
} 

:

public class AutoMapperConfig 
{ 
    private readonly IAutoMapper mapper; 

    public AutoMapperConfig(IAutoMapper mapper) 
    { 
     this.mapper = mapper; 
    } 

    public void RegisterMappings() 
    { 
     mapper.CreateMap<ProductDTO , ProductDataContract>(); 
    } 
} 

을 그리고 추가 한 것이 가장 기본적인 기능을의에 대한

는 Automapper에 직접 종속성을 작성하지 위해 나는 간단한 maping을 만들었습니다 내 글로벌 통화. 아시아 :

new AutoMapperConfig(new AutoMapper()).RegisterMappings(); 

나는이 두 가지 물건을 가지고있다. 매핑을 만들려면 :

public class ProductDTO 
{ 
    public int ProductId { get; set; } 
    public int CategoryId { get; set; } 
    public int SubcategoryId { get; set; } 
    public string Name { get; set; } 
    public decimal Price { get; set; } 
    public string Description { get; set; } 
    public string ImagePath { get; set; } 
    public int NumberOfProducts { get; set; } 
} 

public class ProductDataContract 
{ 
    public int ProductId { get; set; } 
    public int CategoryId { get; set; } 
    public int SubcategoryId { get; set; } 
    public string Name { get; set; } 
    public decimal Price { get; set; } 
    public string Description { get; set; } 
    public string ImagePath { get; set; } 
    public int NumberOfProducts { get; set; } 
} 

그리고 내 코드에서 내가 테스트 목적으로이 줄을 배치

:
var에 제품 =의 productCatalogService.GetProducts를(); ProductDTO ceva = products.FirstOrDefault(); var productsDataContract = mapper.Map (ceva);

문제는 내가 내 응용 프로그램을 실행 WHN CreateMap.Here하려고하는 유형 초기화 예외 메시지 때 나는 imediatly Automapper에서 예외를 얻을 수 있습니다 :

이 유형은이 플랫폼 IDictionaryFactory에서 지원되지 않습니다

내가 뭘 잘못하고 있니?

답변

4

reference issue처럼 들립니다. 프로젝트의 AutoMapper.dll 및 AutoMapper.Net4.dll에 대한 참조가 있어야합니다. 너겟 (nuget)을 통해 설치하는 경우 이는주의를 기울여야합니다.

AutoMapper 3.0에서는 다양한 플랫폼에 대한 패키지가 변경되었습니다.

+0

ps - 왜 AutoMapper를 직접 사용하고 싶지는 모르겠지만 그게 당신 전화입니다. – dove

+0

나는 두 dll의 referece 있었는데 나는 여전히 오류 gettng했지만 Automapper 2에 대한 참조를 추가 한 후 모든 작동합니다. – aleczandru