Я должен классифицировать следующим образом:
public class ClassA
{
public string Item1 { get; set; } // null
public string Item2 { get; set; } // "This is not null."
public int Item3 { get; set; } // 0
public int Item4 { get; set; } // 1 (greater then 0)
}
public class ClassB
{
public string Item1 { get; set; }
public string Item2 { get; set; }
public int Item3 { get; set; }
public int Item4 { get; set; }
}
public class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap<ClassA, ClassB>();
}
}
Я хочу игнорировать отображение, свойства которого имеют значение по умолчанию в ClassA.
В моем проекте много таких классов, поэтому я не хочу игнорировать каждое свойство отдельно.Мне нужна глобальная конфигурация для этого.
Я прочитал много примеров и потратил на это 5 часов.Я пытаюсь сделать с ForAllMembers, но я не мог этого сделать.
Каков наилучший способ сделать это?
Редактировать 1:
Что мне нужно такого рода вещи?
Я использую DevExtreme Grid и использую всплывающее окно редактирования на сетке.Во всплывающем окне изменились только два свойства и сохранены.Я получаю строку as json для переменной «values», как в примере.
ClassA - это модель представления и имеют атрибуты проверки.ClassB это сущность.
JsonConvert.PopulateObject (values, viewModel);Я могу сопоставить с ClassA строку JSON.Все в порядке.Но другие свойства (Item1 и Item3) по-прежнему имеют значения по умолчанию.Вот почему я хочу игнорировать свойства со значениями по умолчанию.
[HttpPut]
public IActionResult DxUpdate(int key, string values)
{
/*
values example:
{"item2":"This is not null.","item4":1}
*/
var entity = _service.GetById(...);
var viewModel = new ClassA();
JsonConvert.PopulateObject(values, viewModel);
if (!TryValidateModel(viewModel))
return BadRequest(ModelState.GetFullErrorMessage());
entity = _mapper.Map<ClassB>(viewModel);
_service.Update(entity);
return Ok();
}
Редактировать 2:
ClassA имеет нулевые свойства типа int или double, поэтому если свойства не имеют значения NULL, то не имеют значения по умолчаниюценности.
Я в порядке с альтернативным решением.Я не думал о хорошем решении.