Không quan trọng, miễn là nó là một lớp tĩnh. Đó là tất cả về quy ước .
Quy ước của chúng tôi là mỗi "lớp" (web, dịch vụ, dữ liệu) có một tệp được gọi AutoMapperXConfiguration.cs
, với một phương thức duy nhất được gọi Configure()
, đó X
là lớp nào.
Các Configure()
phương pháp sau đó gọi private
phương pháp cho từng khu vực.
Đây là một ví dụ về cấu hình tầng web của chúng tôi:
public static class AutoMapperWebConfiguration
{
public static void Configure()
{
ConfigureUserMapping();
ConfigurePostMapping();
}
private static void ConfigureUserMapping()
{
Mapper.CreateMap<User,UserViewModel>();
}
// ... etc
}
Chúng tôi tạo một phương thức cho mỗi "tổng hợp" (Người dùng, Bài đăng), để mọi thứ được phân tách độc đáo.
Sau đó, của bạn Global.asax
:
AutoMapperWebConfiguration.Configure();
AutoMapperServicesConfiguration.Configure();
AutoMapperDomainConfiguration.Configure();
// etc
Nó giống như một "giao diện của các từ" - không thể thực thi nó, nhưng bạn mong đợi nó, vì vậy bạn có thể mã hóa (và cấu trúc lại) nếu cần thiết.
BIÊN TẬP:
Chỉ cần nghĩ rằng tôi hiện đang sử dụng các cấu hình AutoMapper , vì vậy ví dụ trên trở thành:
public static class AutoMapperWebConfiguration
{
public static void Configure()
{
Mapper.Initialize(cfg =>
{
cfg.AddProfile(new UserProfile());
cfg.AddProfile(new PostProfile());
});
}
}
public class UserProfile : Profile
{
protected override void Configure()
{
Mapper.CreateMap<User,UserViewModel>();
}
}
Sạch sẽ hơn / mạnh mẽ hơn.