私は現在AutoMapperコードを調べています (私が取り組んでいるプロジェクトの 1 つについて評価しています)。率直に言って、私は非常に驚いています。
- ライブラリ API は単一の静的アクセス ポイント (タイプ) に基づいている
Mapper
ため、通常、そのメソッドはすべてスレッド セーフである必要があります。 - しかし、コードでこれに関する証拠は見つかりませんでした。
私が見つけることができたのはこの問題だけですが、そこで行われたステートメントでさえ間違っているようMap
です。CreateMap
非並行コンテキストで呼び出しますが、 と同時に呼び出しますMap
。
つまり、ASP.NET MVC アプリケーションなどで AutoMapper を使用できる唯一のパターンは次のとおりです。
lock (mapperLock) {
... Mapper.AnyMethod(...) ...
}
明らかに、私が正しければ、それは大きな不足です。
だから私は2つの質問があります:
- 私は正しいですか?
- はいの場合、この問題がない AutoMapper の最良の代替手段は何ですか?