Automapper устанавливает свойство массива равным нулю -length array вместо null

Я использую Automapper для копирования значений из одного экземпляра в другой, и я обнаружил, что если класс имеет свойство массива, а исходный экземпляр имеет свойство, установленное на null , Automapper устанавливает свойство назначения в массив нулевой длины вместо null , как я ожидал.

Есть ли способ настроить Automapper так, чтобы он устанавливал в качестве места назначения значение null , когда источник null ?

В случае, если мое объяснение неясно, следующий код иллюстрирует то, что я Пытаюсь описать:

public class Test
{
    public byte[] ByteArray { get; set; }
    public int? NullableInt { get; set; }
    public int Int { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        Mapper.CreateMap<Test, Test>();

        var test1 = new Test { Int = 123, NullableInt = null, ByteArray = null };
        var test2 = Mapper.Map<Test>(test1);

        // test1:  Int == 123, NullableInt == null, ByteArray == null
        // test2:  Int == 123, NullableInt == null, ByteArray == byte[0]  <-- expect this to be null
    }
}
26
задан Jeff Ogata 6 December 2011 в 23:53
поделиться