インターフェイスの定義方法によって少し異なります。あなたのマッピングを行う必要があるところでは教えてくれます
プレゼンテーションから次の層(プレゼンテーション層は、インターフェースに依存していることを、ここでこの
ISomeService MyService;//Resolve this with your favorite dependency injection fromwork
var result = MyService.MySeriviceCall(Automapper.Map<SomeEntity>(fooDto));
お知らせのように見えなければならないでしょう、あなたのコードを階層を呼び出しますインプリメンテーションではありません)。
あなたのインターフェイスがこの
interface SomeService(SomeEntity foo)
のように見えるなら、あなたはプレゼンテーション層では、あなたのマッピングを行う必要があります。しかし、このサービスを呼び出すためには、あなたのドメインの層があなたのインターフェースに定義されているので、すでにあなたのドメイン層を知っておく必要があります。あなたのインターフェイスがこの
interface SomeService(SomeDTo foo);
のように見える場合
しかし、その後の参照は、両方のドメインモデルとプレゼンテーション層へのごapplicationServiceからです。そしてマッピングはアプリケーションサービス(私の好みの場所、そして今あなたはDependency Inversionを持っています)で行われます。 注:DTOを別のプロジェクトに置くことができるので、DTOを認識する必要があります。
はまた、あなたのマッピングを定義し、あなたのマッピングを呼び出すと、デあなたは、ドメイン層を言及しないのはなぜ(https://github.com/AutoMapper/AutoMapper/wiki/Configuration)
にもデカップリングできることがわかり? ViewModelとは何が関係していますか<=> PresentationからのDTOマッピングとデカップリングマッピング? – guillaume31
プレゼンテーションからドメインの参照を削除します。 –
どのようにしてプレゼンテーションレイヤーとアプリケーションレイヤーの間のマッピングに関連していますか? – guillaume31