Я пытаюсь разобраться с кодом.У меня трудное время, чтобы увидеть, есть ли у него какое-либо преимущество.Это выглядит подозрительно, но я не совсем понимаю, как работают статические объявления.
Один класс, в котором определены все сопоставления:
public class AutoMapperConfig
{
public static MapperConfiguration MyMapperconfig;
public static void RegisterMapping()
{
MyMapperconfig = new MapperConfiguration(conf =>
{
conf.CreateMap<SomeObject, SomeOther>());
//MANY MORE...
}
}
Затем в global.asax.cs вызывается регистрация.
AutoMapperConfig.RegisterMapping();
, а затем во множествеиз других классов маппер объявляется как приватная статика, подобная этой
private static IMapper _Mapper = AutoMapperConfig.MyMapperconfig.CreateMapper();
и используется
_Mapper.Map<SomeObject>(SomeOther);
Мой вопрос:
Разве это не означает, что каждыйУ класса есть собственный закрытый экземпляр преобразователя, но они точно такие же, так как загружают одну и ту же конфигурацию?
Разве не было бы разумнее просто использовать статический сопоставитель тогда?