Является ли Mapper.Map в AutoMapper потокобезопасным?

Сейчас ищу код AutoMapper(оценивая его для одного из проектов, над которым работаю), и, честно говоря, очень удивлен:

  • API библиотеки основан на одной статической точке доступа (тип Mapper), поэтому, как правило, любой из его методов должен быть потокобезопасным
  • . Но я не нашел НИКАКИХ доказательств этого в коде.

Все, что мне удалось найти, это this issue, но даже сделанное там утверждение кажется неверным: если Mapне использует внутри потокобезопасные структуры данных, она может' также не будет считаться потокобезопасным, если я собираюсь вызвать CreateMapв непараллельном контексте, но одновременно с Map.

единственный возможный шаблон использования AutoMapper, например. Приложение ASP.NET MVC:

lock (mapperLock) {
    ... Mapper.AnyMethod(...) ...
}

Очевидно, если я прав, это огромный недостаток.

Итак, у меня два вопроса:

  • Я прав?
  • Если да, то какая лучшая альтернатива AutoMapper, в которой нет этой проблемы?

31
задан Alex Yakunin 18 May 2012 в 08:35
поделиться