2013-06-04 14 views
5

Tôi có một lớp con lồng nhau với các tài sản công cộng có các người định cư riêng. Trong lớp cha, tôi có thể sử dụng Automapper để ánh xạ tới lớp con và các giá trị của các setters riêng đang được thiết lập. Tất cả mọi thứ tôi đã đọc điểm để Automapper không hỗ trợ này và đòi hỏi một nhà xây dựng tùy chỉnh trong lớp con để cư trú tư nhân setters.Automapper có được phép làm việc với người định cư OOB không?

Phiên bản hiện tại có đang sử dụng sự phản chiếu hoặc thứ gì đó để ánh xạ những người định cư riêng tư không? Các setters chắc chắn là riêng vì trong lớp cha tôi không thể đặt Child.Property nhưng trong cùng một vị trí Mapper.Map có thể thiết lập thuộc tính.

+1

bản sao có thể có của: http://stackoverflow.com/questions/8355024/automapper-mapping-properties-with-private-setters – haim770

+1

Bản sao của http://stackoverflow.com/questions/8355024/automapper-mapping-properties - với những người định cư riêng. –

+0

Đọc câu hỏi của tôi đúng cách. Câu hỏi bạn đã liên kết nói rằng nó KHÔNG làm việc với những người định cư riêng và sử dụng các tham số của hàm tạo như một giải pháp thay thế, nhưng trong trường hợp của tôi, tôi có thể ánh xạ trực tiếp các bộ định riêng. – Monstieur

Trả lời

4

Máy phát điện sử dụng phản chiếu rộng rãi và không có lý do gì để không sử dụng nó để đặt bộ cài đặt riêng.

Thực ra, cho đến khi câu hỏi của bạn tôi không biết rằng nó hoạt động.

Nếu chúng ta xem xét các bài kiểm tra đơn vị, chúng ta có thể thấy thực tế là các bộ định riêng được đặt tự động. Vui lòng xem PrivateSetterInParentWorks.

Lưu ý, Silverlight doesn't support setting private fields through reflection. Vì vậy, tính năng này không hoạt động với nó.

+0

Chúng tôi có thể FORBID sử dụng người định cư riêng không? – Kaerber

+0

@Kaerber, hãy xem phương thức [IgnoreAllPropertiesWithAnInaccessibleSetter] (https://github.com/AutoMapper/AutoMapper/pull/423). Nó xuất hiện trong 3.2.0. –

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