0

次のように、オブジェクト内にオブジェクトのリストがある場合:

//There is a class just like this InnerSource
public class InnerClass
{
   //Because why not
   public int[] Nums;
}
//There is a class OuterSource just like this but it has a List of
//InnerSource objects
public class OuterClass
{
   public IEnumerable<InnerClass> InnerObjects;
}

これは OuterSource オブジェクトを OuterClass オブジェクトにマッピングするエレガントな方法だと思いましたが、うまくいかないようです:

public class CreateMaps
{
   public void CreateAllMaps()
   {
      Mapper.CreateMap<InnerSource, InnerClass>();
      Mapper.CreateMap<OuterSource, OuterClass>()
      .ForMember(dest => dest.InnerObjects, opt => MapFrom(
         src => src.InnerSource));
   }
}

src => Mapper.Map, IEnumerable>(src.InnerSource) も使用してみましたが、どちらも機能しませんでした。うまくいかなかったということは、InnerClass オブジェクトのリストを取得する代わりに、空のリストを取得したということです。InnerSource リストにオブジェクトが含まれていることを確認したので、本当に途方に暮れています。何か案は?

4

1 に答える 1

0

ForMember私は実際にあなたがその行さえ必要だとは思わない。これをやってみてください:

public class CreateMaps
{
   public void CreateAllMaps()
   {
      Mapper.CreateMap<InnerSource, InnerClass>();
      Mapper.CreateMap<OuterSource, OuterClass>();
   }
}
于 2013-07-30T03:19:47.987 に答える