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(), đó Xlà lớp nào.
Các Configure()phương pháp sau đó gọi privatephươ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.