AutoMapper <= 3.0 では、次のテストに合格します。
public class AutoMapperTest
{
static Source source;
static Destination destination;
Establish context = () =>
{
Mapper.Configuration.AllowNullCollections = false;
Mapper.CreateMap<Source, Destination>();
source = new Source { Name = null, Data = null };
};
Because of = () => destination = Mapper.Map<Destination>(source);
It should_map_name_to_null = () => destination.Name.ShouldBeNull();
It should_map_array_to_empty = () => destination.Data.ShouldNotBeNull();
}
public class Source
{
public string Name { get; set; }
public string[] Data { get; set; }
}
public class Destination
{
public string Name { get; set; }
public string[] Data { get; set; }
}
バージョン 3.1 の時点で、destination.Data が以前のように空の配列ではなく null に設定されているため、should_map_array_to_empty アサーションは失敗します。構成されたマップごとに個別にではなく、できればグローバルに、以前の動作を復元する方法はありますか?
Mapper.Configuration.AllowNullCollections = false
この場合、私が試した AutoMapper のバージョンに関係なく、構成オプションに違いはないようです。