1. ホーム
  2. .net

[解決済み] AutoMapper .ForMemberの使い方は?

2023-01-28 17:44:47

質問

AutoMapper をセットアップして、Entity から DTO に変換しようとしています。私は、以下のものを使用することになっていることを知っています。 .ForMember() の後に Mapper.CreateMap<Entity, DTO>() を使用してカスタムマッピングを設定することができますが、これは利用可能な方法ではないようです。

明確化のために編集します。 私は、私が読んだことのあるドキュメントへのリンクや、基本的な構文の説明を探しているわけではありません。私は、たとえば、回答やドキュメントに記載されているような正しい構文を使用しています。

Mapper.CreateMap<EFAddress, Address>()
      .ForMember(dest => dest.Code, opt => opt.MapFrom(src => src.Name));

CreateMap<> 内に無効な型名がある場合、有効なメソッドとして "ForMember" を見ることができ、マウスオーバーすると、通常期待されるようにメソッドのシグネチャが表示されます。しかし、2つの有効な型を与えるとすぐに、ForMemberは、メソッドが利用できないかのように、シンボルを解決できないと言います。

私が満たしていないジェネリッククラスに何らかの制約があるのでしょうか。

ありがとうございます。

どのように解決するのですか?

結局、ReSharperとの非互換性のようなものが判明したのだと思います。

ReSharper は Automapper のコードの表示をおかしくしていたようですが、(エラーメッセージで赤く表示されても)問題なく動作しています。ReSharper をアンインストールすると、この問題は完全に解決されました。