Gọi tất cả các chuyên gia AutoMapper!AutoMapper Làm thế nào để ánh xạ đối tượng A đến đối tượng B khác nhau Tùy thuộc vào ngữ cảnh
Tôi muốn có thể ánh xạ đối tượng A để đối tượng B khác nhau tùy thuộc vào ngữ cảnh khi chạy. Đặc biệt, tôi muốn bỏ qua các thuộc tính nhất định trong một trường hợp ánh xạ và có tất cả các thuộc tính được ánh xạ trong một trường hợp khác.
Điều tôi đang gặp là Mapper.CreateMap có thể được gọi thành công trong các trường hợp ánh xạ khác nhau, khi CreateMap được gọi, bản đồ cho một cặp loại cụ thể được đặt và sau đó không thay đổi. có thể mô tả ánh xạ khác nhau.
Tôi tìm thấy một bài đăng trên blog ủng hộ Mapper.Reset() để giải quyết vấn đề, tuy nhiên, tính chất tĩnh của lớp Mapper có nghĩa là nó chỉ là vấn đề thời gian trước khi xảy ra va chạm và va chạm.
Có cách nào để thực hiện việc này không?
Điều tôi nghĩ tôi cần là gọi Mapper.CreateMap một lần cho mỗi tên miền ứng dụng và sau đó, có thể gọi Mapper.Map với các gợi ý về những thuộc tính nào nên được bao gồm/loại trừ.
Ngay bây giờ, tôi đang suy nghĩ về việc thay đổi mã nguồn bằng cách viết một lớp ánh xạ không tĩnh giữ bản sao cấu hình ánh xạ. Hiệu suất kém, nhưng chủ đề an toàn.
Tùy chọn của tôi là gì. Những gì có thể được thực hiện? Automapper có vẻ rất hứa hẹn.
@Omu: Bạn và "ValueInjecter" của bạn đang bắt đầu rất khó chịu. Bạn không phải trả lời mỗi câu hỏi AutoMapper với plugin của bạn cho ValueInjecter (nó không phải là ValueInjector). Cá nhân tôi bị tắt bởi điều này, và thậm chí sẽ không nhìn nó do chiến thuật của bạn. Nó không chỉ là người chuyên nghiệp. – epitka