問題タブ [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# - .netでのオブジェクトコピーアプローチ:Auto Mapper、Emit Mapper、Implicit Operation、Property Copy
.NETでこれを行う方法を誰かが知っている場合、またそのアプローチについてのあなたの意見は何ですか?どのアプローチを選択し、その理由は何ですか?
.NETでのオブジェクトコピーのさまざまな方法のテストを次に示します。
この元のスレッドに関連するテスト:C#で同じプロパティ名を持つクラスXからクラスYに値をコピーする方法は?
だから、ここにあります、あなたはそれを自分で実行することができます:
私のPCで結果をテストします:
自動マッパーのテスト:22322ミリ秒
暗黙の演算子のテスト:310ミリ秒
テストプロパティのコピー:250ミリ秒
エミットマッパーのテスト:281ミリ秒
ここからemitとauto-mappersを入手できます。
asp.net-mvc-2 - AutoMapperからEmitMapperへ
最近、ViewModelと実際のDBオブジェクトをブリッジするためのAutoMapperを発見しました。私はここで説明されている方法でそれを使用します:http ://automapper.codeplex.com/wikipage?title = Projection&referringTitle = Home
Emit Mapper to :)を発見しましたが、(カスタム投影ルールを指定できる)に似たものが見つかりません。
前もって感謝します!
c# - オブジェクトソースタイプのEmitMapper
異なるタイプのemitmapperを使用する必要があります。defoultの場合、2つのジェネリック型が必要です。
私はこのようなことをする必要があります:
c# - コレクションに関する EmitMapper のリスト マッピングの問題
ソースクラス:
宛先クラス
EmitMapper を使用して相互にマッピングしてみます。ソースから説明へのマッピングのコード例は次のとおりです:</p>
そして私は例外を得ました、
テスト メソッド mBlog.Test.EmitMapperTest.ShouleMapEntityToModel が例外をスローしました: System.Exception: System.Collections.Generic.IList`1[[mBlog.Core.Models.Post, mBlog.Core, Version=1.0 に見つからない型 [] のコンストラクター] .0.0、カルチャ = ニュートラル、PublicKeyToken = null]]
.net - EmitMapper:派生クラスのマップ配列
次のクラス階層があると仮定しましょう
また、A1とA2のインスタンスを実際に含むDtoBaseClassの配列を返すサービスがあります。この配列をDomainClassインスタンスの配列にマップし、B1 <-> A1、B2 <-> B1間の関係を保存するにはどうすればよいですか?
デフォルトの構成では、DomainClassの配列を取得し、派生クラスのすべてのプロパティを失います。
私はマッピングにこのコードを使用します:
c# - Automapper、Valuinjector、手動マッピングのどちらが速いですか? それぞれどの程度速いですか?
私のDAL(ORMなど)にこのオブジェクトがあるとします
そして、私はこのようなViewModelを持っています
その場合、オブジェクトを平らにする必要があります。これは、Automapper や ValueInjector などのツールを使用して行うことも、手動で行うこともできます。処理するクラスが多数ある場合、これは面倒な作業ですが、3 つのアプローチすべての間にパフォーマンスと開発者の効率のトレードオフがあるようです。
Automapper 、 Valueinjector、手動マッピングをいつ使用するかについてのガイダンスを探しています。手動マッピングが最速だと確信していますが、どれくらいですか?
一部のシナリオは他のシナリオよりもはるかに遅い/速いですか (例: 平坦化など)?
レイヤー間でオブジェクトをマッピングするためのハイブリッド アプローチを行うことは理にかなっていますか?
私が尋ねる理由は、emitmapper と呼ばれる Codeplex プロジェクトが automapper のパフォーマンスの問題に対処するために作成されたためです。automapper が大きなクラスをマップするのに最大 .5ms かかる可能性があるというコメントを見たのを覚えています。(参照が必要)
また、90 ミリ秒以上ではなく 70 ミリ秒以内に読み込まれると、ユーザーがサイトにとどまる可能性が高くなるという記事を見たことも覚えています。(私もこのリンクを探しています)。オートマッパーがページ読み込み時間のほとんどをネットワーク遅延と合わせて消費している場合、オートマッパーを使用せずに大量のページに手動クラスを作成し、ハイブリッド アプローチを使用する可能性があると考えています。
結論: 私は自分でテストを実行しますが、再利用可能なガイドラインとして使用できる正確な結果を作成するには、.NET の内部について十分に知りません。
emitmapper - EmitMapper とリスト
EmitMapper を使用するのは初めてです。オブジェクト ex: Customer のリストがあり、このリストを CustomerDTO の ienumerable にマップしたいのですが、どうすればよいですか? TNX
c# - Emit Mapper Flattering とプロパティ名の不一致
Emit Mapperを使用してUserクラスをUserModelクラスにマップする方法は?
いくつかの問題があります:
- Company オブジェクトの代わりに CompanyId を持つように、オブジェクトをフラット化する必要があります。
- Company オブジェクトにはプロパティ Id があり、UserModel には会社 ID に対応する CompanyId がありますが、プロパティ名が一致しません。
- にマップ
List<Role>
する必要がありますList<RoleModel>
c# - カスタム コンバーターで Mapper Flattering を発行する
この設定では、EmitMapper Samples の FlatteringConfig を使用すると、なぜかカスタム コンバーターの Conver 関数が呼び出されません。DefaultMapConfig が使用されたときに呼び出されます。
構成:
潜在的な理由についてのアイデアはありますか?
解決
以下の私の答えを見てください
emitmapper - エミット マッパー マッピング時にメンバーを無視する
Emit マッパーを使用して、あるオブジェクトから別のオブジェクトに値をコピーしています。
オブジェクトをマッピングするとき、特定のフィールドがマッピング/コピーされないように無視する必要があります。無視されるフィールドは、シナリオに基づいて変化し続けます。
これは EmitMapper でどのように行うことができますか? .Map メソッド自体は、特定のプロパティを無視するために追加のパラメーターを使用しません。DefaultMapConfig を使用して無視するフィールドを指定できますが、これは静的であり、マッピング中に変更することはできません。
助けてください。