Я использую Automapper для сопоставления класса с нулевой коллекцией для адресата с той же коллекцией. Мне нужно, чтобы сборник получал значение null.Automapper: настройка AllowNullCollections в профиле
В классе Профиль, называемом AllowNullCollections, есть свойство. Это не влияет на отображение. Если я установил cfg.AllowNullCollections в значение True, то сопоставление оставляет коллекцию назначения нулевой (как я хочу).
Я не могу установить AllowNullCollections для True для всех сопоставлений в моей системе, он должен применяться только к моему профилю.
using System.Collections.Generic;
using AutoMapper;
using NUnit.Framework;
using Assert = NUnit.Framework.Assert;
namespace Radfords.FreshCool.Web.Tests
{
[TestFixture]
[Category("UnitTest")]
class AutomapperTests
{
private IMapper _mapper;
// this says that AllowNullCollections does work at the profile level, in May.
//https://github.com/AutoMapper/AutoMapper/issues/1264
[SetUp]
public void SetUp()
{
var config = new MapperConfiguration(cfg =>
{
cfg.AddProfile<TestMappingProfile>();
// I want the profile to set the configuration, if I set this here the test passes
//cfg.AllowNullCollections = true;
});
_mapper = config.CreateMapper();
}
[Test]
[Category("UnitTest")]
public void MapCollectionsTest_MustBeNull()
{
var actual = _mapper.Map<Destination>(new Source());
Assert.IsNull(actual.Ints, "Ints must be null.");
}
}
internal class TestMappingProfile : Profile
{
public TestMappingProfile()
{
AllowNullCollections = true;
CreateMap<Source, Destination>();
}
}
internal class Source
{
public IEnumerable<int> Ints { get; set; }
}
internal class Destination
{
public IEnumerable<int> Ints { get; set; }
}
}
Я думаю, что это ошибка. Я передал вопрос об этом репо (https://github.com/AutoMapper/AutoMapper/issues/1618), чтобы получить дополнительную информацию. –
Но одно можно добавить: «Я не могу установить AllowNullCollections для True для всех сопоставлений в моей системе, он должен применяться только к моему профилю ». - Это намерение. Профили не изменяют глобальные настройки, а только настройки для типов, которые они отображают. –
Спасибо за ваш ответ. Да, чтобы уточнить, я не могу установить allownullcollections в true в config, потому что он будет применяться глобально, я хочу установить allownullcollections на true на уровне профиля, только для моего конкретного сопоставления. – WilliamsC