問題タブ [automapper]
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# - WCF サービスで CreateMap と Map のインスタンス バージョンを使用しますか?
オートマッパーでいくつかの実際の問題が発生しています。私は解決策を見つけたと思いますが、それを実装する方法がわかりません。
基本的に、私は ResolveUsing と ConstructedBy でカスタム マッピングを使用してパラメーターをコンストラクターに渡しています。ほとんどの人がこれを global.asax で一度設定して忘れていることを理解しています。
しかし、問題は、(wcf 上の) 私のメソッドが異なるパラメーターを ResolveUsing のコンストラクターに渡すことです ......
静的メソッドである Mapper.CreateMap と Mapper.Map を使用する前に、さまざまな請願がメソッド (マルチユーザー) を介して wcf サービスに入ると、互いに競合しているように見えます。
何かを読んだ後、CreateMap と Map のインスタンス バージョンを使用して、個々の請願が独自のマップを取得し、独自のパラメーターを渡すことができるように見えます。
しかし、私はそれを行う方法を見つけることができないようです。誰か説明してくれませんか?私は本当に立ち往生しています...
以前は重複キー エラーが何度も発生し、コンストラクターにログ トレースを記録したところ、一方の請願がもう一方の請願を上書きしているように見えたので、静的バージョンの Mapper が作成されました。
私が正しいことを願っていますが、他に何も見つかりません...
編集済み - 私が持っているものの例
ほとんどの場合MapFromを使用しているため、基本的にすべてのマッピングは正常に機能しています。
次に、URL で渡すリゾルバーのインスタンスを作成します。渡す前にURLを確認しましたが、正しいです。しかし、返されると、間違った URL が返されます。
URL を渡す必要がある理由は、そこに変数があるため、変数を置き換える必要があるためです... 基本的に、オフィスに応じて 2 つの URL があり、どこにでもログがあり、何を渡しているかを確認できますが、一度私はそれを渡します - それは私が渡したものではありません。
その WCF サービスとクライアントは、2 つの異なるオフィスでメソッドを 2 回呼び出したため、2 つの異なる URL を使用しています。ただし、常に同じ URL が返されます。あるセッションが他のセッションを上書きしているようです...
これが理にかなっていることを願っています。
どこが失敗しているかが判明 - しかし、その理由は不明
私のコメントをコードとインラインで参照してください。コンストラクターで urlTemplate が到着し、それをプライベート変数に保存し、オーバーライドされた ResolveCore でそれは別のものです:-)
そこにいくつかのlog4netログを配置したので、何が起こっているかを見ることができます.
一時的な解決策
一時的な解決策を実行しましたが、本当に悪いです。オートマッパーは私が試みていることを実行できると確信していますが、明らかに何か間違ったことをしています。
基本的に、LINQ を介してレコードのコレクション (THIS IS MY SOURCE) を返すので、正しい URL テンプレートを持つすべてのレコードに新しいフィールドを入力しました。そして、(コンストラクターを介して)urlテンプレートを渡す代わりに、コレクション(THE SOURCE)のすべてのレコードのプロパティとして利用できるようにしました...そしてそれは完璧に機能します。
もちろん、これは実際にはパッチであり、理想的ではありませんが、実行できます。
どこが間違っていますか?
asp.net-mvc - Spark テンプレート ポストから ViewData.Model を取得する
namevaluecollection の代わりに ViewData.Model を使用するように spark ビューを変換しようとしています。これにより、AutoMapper を使用して、アクション メソッドに入る前に dto をエンティティにマップできます。
ビューから viewdata.model にアクセスできますが、データをポストバックすると、viewdata.model が null になります。ここにいくつかのサンプルコードがあります:
私からしてみれば:
<viewdata Message="string" model="MyDto" />
${Model.Id} < -- displays MyDto.Id
私がやろうとしているサーバー上の私のフィルターで:
var model = filterContext.Controller.ViewData.Model;
ただし、ViewData.Model は null です。これは OnActionExecuted 中です。投稿されたビューから値を取得する ViewData.Model を取得するトリックはありますか?
asp.net-mvc - asp.net mvc automapperの解析
このようなものがあるとしましょう
オートマッパーを使用して、Person から PersonViewModel への解析を実行できますか?
nhibernate - AutoMapper を使用して NHibernate ISet を IList に単純にマップする方法
AutoMapper を使用して DTO からドメインにマップしようとしています。
私のDTOは次のようになります。
私のドメイン オブジェクトは次のようになります。
これらの配列からセットにマップできるように AutoMapper をセットアップするにはどうすればよいでしょうか。AutoMapper が配列を取り、それらを IList に変換してから、ISet への変換に失敗しているようです。
ここに例外があります
DTOからドメインへのマッピングに必要なインフラストラクチャを最小限に抑えることができるように、これを行うための簡単で一般的な方法を見つけたいと思っています。どんな助けでも大歓迎です。
更新:
では、貧血ドメイン モデルで終わることなく MyDomain -> ChildDomain をモデル化するにはどうすればよいでしょうか? MyDomain または ChildDomain にビジネス ロジックがないと、ドメイン モデルが現在貧弱であることは理解していますが、前進するにつれてビジネス ロジックを追加することが目標でした。ビュー モデルをドメイン モデルに変換して永続化できるようにしたいだけです。
ビューとドメインの間の単純なマッピングから移行し、後でビジネス ルールを追加する場合、このシナリオに対して何を提案しますか?
ご協力いただきありがとうございます。
c# - DTO/コマンドパターンの質問
AutoMapper(双方向マッピングの賛成/反対の議論)に関してLosTechiesについて非常に興味深い議論がありました。
私が現在取り組んでいる問題のために、これは実際に私の注意を引きました。料金や配達時間などの情報をユーザーに提供するために、出荷品に取り組んでいます。実際のサービスを一元化するために、ドメインエンティティを永続化するWCFWebサービスがあります。
ドメインモデルを単純化するために、基本的に2つのクラスがあります。
また、ワイヤ全体の負荷を軽減するために作成された、対応するDTOのセットもあります。プレゼンテーションピース(またはWebサービスに関係するピース)は、ドメインモデルの知識がなくてもDTOを使用します。
私の質問はここにあります。貨物を作成するために、サービスはアイテムのリストを受け入れます。出荷を作成するためのロジックがあり、それはすべてWebサービスの背後に隠されています。本質的に、これはItemDTOがネットワークを介して渡され(クライアント->サーバー)、出荷が作成され、次にShipmentDTOが返される(サーバー->クライアント)ことを意味します。現在、ShipmentDTOにはItemDTOの子リストもあり、これにより双方向マッピングシナリオが作成されます。
これは単純なCRUD操作以上のものであり、コマンドメッセージパターンにかなり慣れていないので、コミュニティがこの問題をどのように解決するのか興味があります。
2ウェイマッピングでDTOを双方向に渡しますか?
使用例(プレゼンテーション層):
castle-windsor - AutoMapper を挿入する
AutoMapper をコントローラーに挿入する作業を行っています。Code Camp Server の実装が気に入っています。AutoMapper の IMappingEngine のラッパーを作成します。依存性注入は StructureMap を使用して行われます。しかし、私のプロジェクトではキャッスル ウィンザーを使用する必要があります。では、Windsor を使用して、次の依存関係の挿入とセットアップをどのように実装するのでしょうか? Castle Windsor で行ごとに同等の実装を探しているわけではありません。やりたい方はどうぞご自由にどうぞ。代わりに、StructureMap のレジストリとプロファイルに相当する Windsor は何ですか? 次のように CreateMap<> を定義するには Profile が必要です。
ありがとう。
会議の管理者:
ミーティングマッパー:
自動マッパーレジストリ:
会議マッパーのプロフィール:
.net - MVC-別のモデルビュー内のモデルビュー
あるモデルビューを別のモデルビュー内で使用することは良い習慣ですか?AutoMapperはそれとどのように連携しますか?
例:
iis-7 - 署名済みアセンブリを使用する場合の IIS7 の AutoMapper の問題
IIS 7 で実行されている Web アプリケーションでAutoMapperを使用しようとしています。これを使用して、外部 dll で定義されたドメイン タイプをマップし、IIS アプリケーションで定義されたモデルを表示します。これは、外部 dll が署名されている場合を除き、正常に機能します。次に、次のエラーが表示されます。
問題を再現する手順:
1) IIS 7 がインストールされているマシンで Visual Studio 2008 を使用して新しい Web アプリケーションを作成します。(私たちはWindows 7を使用しています)。
2) http://www.codeplex.com/AutoMapperから AutoMapper.dll をダウンロードします。(バージョン 0.4.xx を使用しています)、この Dll への参照を Web アプリケーションに追加します。
3) デフォルト ページのコード ビハインドに次のコードを配置します。
4) 「TestLibrary」という名前の新しいクラス ライブラリを作成し、Class1.cs ファイルの名前を Source.cs に変更して、次のコードを挿入します。
5) このライブラリへの参照を Web アプリケーションに追加します。
6) ソリューションを実行すると、「Automapper works!」というメッセージが表示されます。出力。
7) 失敗させるには、2 つのことを行う必要があります。
i) Visual Studio 開発サーバーではなく IIS で実行するように Web サイトを構成します。ii) TestLibrary アセンブリに署名します。その後、ソリューションを実行すると、上記で報告されたエラーが発生するはずです。
これを回避する方法を知っている人はいますか?IIS 管理コンソールで確認したところ、アプリケーションは完全な信頼で実行されています。
c# - Automapper、ジェネリック、dto funtimes
取引は次のとおりです。
ユーザーがいくつかの事前定義されたデータセットに基づいてレポートを作成できるレポートデザイナーがいます。レポートに含める列のセットを選択し、レポートを実行すると、オートマッパーを使用してNHibernateコレクションをdtoクラスコレクションにマッピングすることでIListが作成されます。
これに伴う問題は、DTOコレクションには、必要かどうかに関係なくすべてのデータが入力されるため、冗長な列が大量に含まれていることです。
これに対する私の解決策は?実行時にDTOタイプを作成し、私たちが持っている情報を使用して、必要なプロパティのみを使用して動的に作成されたDTOコレクションにnhibernateコレクションをマップしてみませんか。
問題?
生成された型をジェネリックパラメーターとして使用してIListを作成することはできません:s
私はいつもこのような問題に遭遇しているようです。私はジェネリックを乱用していますか?これは可能ですか?これにより、アプリが大幅に高速化され(キャッシュと、再生成される一時アセンブリを破棄するためのいくつかのチェックが追加されるなど)、保守の手間が大幅に軽減されます。
w://
生成された型をジェネリックパラメーターとして使用してIListを作成することはできません:s
私はいつもこのような問題に遭遇しているようです。私はジェネリックを乱用していますか?これは可能ですか?これにより、アプリが大幅に高速化され(キャッシュと、再生成される一時アセンブリを破棄するためのいくつかのチェックが追加されるなど)、保守の手間が大幅に軽減されます。
w://
asp.net-mvc - AutoMapper Customer ValueResolver フックの何が問題になっていますか?
Global.aspx に次のフックがあります。
私のコントローラーで:
この行は実行されますが、カスタム リゾルバーは呼び出されません。
リゾルバーは次のようになります。
アプリケーションはコンパイルおよび実行されますが、カスタム リゾルバーがなければ、オブジェクトには何も入りません。get アクセサーを例外としてスローするモック オブジェクトを作成するだけです。