Với yêu cầu:chuỗi AutoMapper để enum thiệu
Tham dự một đồ thị đối tượng, thiết lập tất cả các thuộc tính kiểu enum dựa trên xử lý giá trị của một tài sản chuỗi thứ hai. Công ước quy định rằng tên của thuộc tính chuỗi nguồn sẽ là thuộc tính enum với một postfix là "Raw".
Bằng cách xử lý, chúng tôi có nghĩa là chúng tôi cần phải loại bỏ các ký tự được chỉ định e.t.c.
Tôi đã xem xét các trình định dạng tùy chỉnh, trình phân giải giá trị và trình chuyển đổi loại, không cái nào trong số đó có vẻ như là giải pháp cho điều này?
Chúng tôi muốn sử dụng AutoMapper thay vì thói quen phản chiếu của chúng tôi vì hai lý do, a) nó được sử dụng rộng rãi trong suốt phần còn lại của dự án và b) nó cung cấp cho bạn ootb truyền tải đệ quy.
- Ví dụ -
Do (đơn giản) cấu trúc bên dưới, và điều này:
var tmp = new SimpleClass
{
CountryRaw = "United States",
Person = new Person { GenderRaw="Male" }
};
var tmp2 = new SimpleClass();
Mapper.Map(tmp, tmp2);
chúng tôi mong đợi MappedCountry enum tmp2 để được Country.UnitedStates và tài sản Người để có một giới tính của Gender.Male.
public class SimpleClass1
{
public string CountryRaw {get;set;}
public Country MappedCountry {get;set;}
public Person Person {get;set;}
}
public class Person
{
public string GenderRaw {get;set;}
public Gender Gender {get;set;}
public string Surname {get;set;}
}
public enum Country
{
UnitedStates = 1,
NewZealand = 2
}
public enum Gender
{
Male,
Female,
Unknown
}
Cảm ơn
bạn có thể hiển thị ví dụ về những gì bạn có và những gì bạn muốn ánh xạ nó không? – Omu
Chắc chắn, đã chỉnh sửa bài đăng gốc :-) – 6footunder