2014-10-20 17 views
18

Tôi đang sử dụng ánh xạ tự động lần đầu tiên.Cách cấu hình Trình ánh xạ tự động trong dự án thư viện lớp?

Tôi đang làm việc trên ứng dụng C# và tôi muốn sử dụng trình ánh xạ tự động.

(Tôi chỉ muốn biết làm thế nào để sử dụng nó, vì vậy tôi không có ứng dụng asp.net không phải ứng dụng MVC.)

tôi có ba dự án thư viện lớp.

enter image description here

Tôi muốn viết quá trình chuyển giao trong dự án dịch vụ.

Vì vậy, tôi muốn biết tôi nên định cấu hình Trình ánh xạ tự động như thế nào và ở đâu?

Trả lời

20

Bạn có thể đặt cấu hình bất cứ nơi nào:

public class AutoMapperConfiguration 
{ 
    public static void Configure() 
    { 
     Mapper.Initialize(x => 
      { 
       x.AddProfile<MyMappings>();    
      }); 
    } 
} 

public class MyMappings : Profile 
{ 
    public override string ProfileName 
    { 
     get { return "MyMappings"; } 
    } 

    protected override void Configure() 
    { 
    ...... 
    } 

Nhưng nó phải được gọi bằng các ứng dụng sử dụng các thư viện tại một số điểm:

void Application_Start() 
    {    
     AutoMapperConfiguration.Configure(); 
    } 
0

tôi khuyên bạn nên sử dụng instance based approach using an IMapper:

var config = new MapperConfiguration(cfg => { 
    cfg.AddProfile<AppProfile>(); 
    cfg.CreateMap<Source, Dest>(); 
}); 

IMapper mapper = config.CreateMapper(); 
// or 
IMapper mapper = new Mapper(config); 
var dest = mapper.Map<Source, Dest>(new Source()); 

Bằng cách đó, không ai ngoài thư viện của bạn phải gọi bất kỳ cấu hình nào phương pháp khẩu phần. Bạn có thể xác định một MapperConfiguration và tạo trình ánh xạ từ đó tất cả bên trong thư viện lớp.

Các vấn đề liên quan