2

サービス参照を使用する ac# ライブラリを作成しています。ライブラリの外からサービス全体にアクセスできるようにしたくありません。そのため、最初に AutoMapper を使用して、必要なサービス クラスをライブラリ内の同様のクラスにコピーしました。2 番目のステップは、サービス参照を内部にすることでした。私の主な問題は、内部アクセスをサポートする自動マッピング ライブラリがないように見えることです。AutoMapperEmitMapper、およびValueInjecterライブラリを試しましたが、コピーしたすべてのオブジェクトに null/デフォルト値があります。AutoMapper には、内部サポートに関連するgithub の問題がありますが、いつ表示されるかはわかりません。

JSON.NETを使用してサービス クラスをシリアライズし、それをライブラリ クラスにデシリアライズするという奇妙なことを試すことにしました。これはかなりうまく機能しますが、パフォーマンスの点で AutoMapper のようなライブラリと比較してどうなのだろうかと思います。パフォーマンスに関しては、EmitMapper が王様であることを私は知っています。

内部で機能する自動マッピング ソリューションを見つけた人はいますか?

4

1 に答える 1

1

各ライブラリをテストするための簡単なコンソール プログラムを作成しました。

GUID として設定された 6 つの文字列プロパティを持つ 10,000 個のオブジェクトを作成します。各テストはこれらのオブジェクトを繰り返し処理し、異なるタイプの新しいオブジェクトに自動マッピングします。自動マッピング ライブラリごとにテストを 10 回実行し、各テストの平均タイムスパンをミリ秒単位で計算します。

  1. EmitMapper 平均時間: 6.96822 ミリ秒
  2. ValueInjector 平均時間: 71.87465 ミリ秒
  3. AutoMapper 平均時間: 116.4615 ミリ秒
  4. JsonMapper 平均時間: 154.02429 ミリ秒

これの主な目的は、JSON.NET を使用することが他の主要な自動マッピング ライブラリの現実的な代替手段であるかどうかを判断することでした。前もってAutoMapperと競合しているように見えるので、答えがあると思います.

于 2013-10-22T21:42:39.730 に答える