問題タブ [emitmapper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - エミットがリフレクションより速い理由
私はエミットとそれがリフレクションよりもはるかに高速であることについて多くのことを読んできましたが、その理由を見つけることができませんでした. エミットが IL コードを注入していることは理解していますが、ORM のようにプロパティ マッピングを行う場合、これがリフレクションよりも速いのはなぜですか?
この種の使用例を参照してください: エミット マッパーと valueinjecter または automapper のパフォーマンス
emitmapper - エミットマッパーに継承を認識させる
クラスの最も派生したマッピングを選択できるように、オブジェクトの階層をemitmapperに認識させようとしています。これらのクラスがあるとしましょう
そして、それぞれの DTO (PaymentDTO、GuarantePaymentDTO など) と、マップしたいオブジェクトには Payment のコレクションがあり、それぞれが Payment 自体を含む Payment から派生した任意のタイプであり、ターゲットはそのオブジェクトの DTO であり、もちろんPaymentDTOのコレクション。何も構成しない場合、emitmapper は常に基本型を作成してマップします。最も派生した型を認識させる最善の方法は何ですか?
c# - EmitMapper - 抽象モデル オブジェクトから抽象 DTO への一般的なマッピング
ValueInjecterからEmitMapperへの移行に助けが必要です(パフォーマンス上の理由からそうすることにしました)。私の使用例は、最も一般的なものの 1 つです。いくつかのルールに基づいて、モデル オブジェクトを DTO にマッピングします。
この規則の 1 つは、プロパティの型が DomainObject のサブクラスである場合、対応する DTO にマップする必要があるということです。具象型は問題ありませんが、抽象型でも機能するようにしたいと考えています。問題は、どの DTO を動的に使用する必要があるかを EmitMapper に伝える方法がわからないことです。
ValueInjecter コード内:
私の DTO はすべてインターフェイスを実装しているので、DTO<>
EmitMapper のメソッドを使用できると思っていましたが、方法がわかりDefaultMapConfig.ConvertGeneric
ません。
完全を期すために、現在の(機能していない)コードを含めます。
テストでこのマッピングを使用しようとすると、次の例外が発生します
編集:これは、マップしたいオブジェクトの例です。
c# - IList を使用した EmitMapper と ValueInjecter
AutoMapper、FasMapper、ValueInjecter、およびEmitMapperのパフォーマンス テストを実行していますが、型のリストをマップしようとすると、 EmitMapperとValueInjecterでのみ問題に直面していますIList<T>
それは私がすべてのマッパーに使用するコードです:
それはEmitMapperの私のアダプター実装です:
それはValueInjecterのためです:
メソッドを保持する単一のインターフェースがありますAdapt<TSource, TTarget>(TSource source)
私は何を間違っていますか?AutoMapperとFastMapper でも動作します! 変更するList<T>
と、すべてのマッパーで機能します。