Заполнение свойств на основе состояния конкретных свойствC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Заполнение свойств на основе состояния конкретных свойств

Сообщение Anonymous »

У меня есть следующий сценарий
У меня есть следующие классы C#

Код: Выделить всё

   public class ApiRequest{
public int? FwVersion { get; set; }
public int? OsVersion { get; set; }

public int PageSize { get; set; }

public string Owner { get; set; } = String.Empty;
}

и

Код: Выделить всё

 public class DbRequest {
public int PageSize { get; set; }
public string Owner { get; set; } = String.Empty;

public int FwVersion { get; set; }
public bool FwVersionSpecified { get; set; }
public int OsVersion { get; set; }

public bool OsVersionSpecified { get; set; }
}

Теперь я конвертирую объекты из ApiRequest в DbRequest. Я должен это сделать следующим образом:
Для каждого свойства, допускающего значение NULL, в моем ApiRequest существует свойство, не допускающее значение NULL, в классе DbRequest и другое логическое значение. свойство с тем же именем и «SpecifiedSuffix». Я заполняю свойство, не допускающее значения NULL, используя

Код: Выделить всё

GetValueOrDefault()
и соответствующее указанное свойство с помощью HasValue. Вот пример моей конфигурации AutoMapper:

Код: Выделить всё

public class MappingConfiguration : Profile
{
public MappingConfiguration()
{
// Fix mappings
CreateMap()
.ForMember(dst => dst.FwVersion, opt => opt.MapFrom(
src => src.FwVersion.GetValueOrDefault()
))
.ForMember(dst => dst.FwVersionSpecified, opt => opt.MapFrom(
src => src.FwVersion.HasValue
))
.ForMember(dst => dst.OsVersion, opt => opt.MapFrom(src => src.OsVersion.GetValueOrDefault()))
.ForMember(dst => dst.OsVersionSpecified, opt => opt.MapFrom(src => src.OsVersion.HasValue));
}
}
Это работает. Однако моя проблема в том, что у меня есть другие классы, такие как ApiRequest/DbRequest, которые имеют множество свойств, допускающих значение NULL, и указанных свойств. Есть ли более простой способ сопоставить их, не просматривая каждое поле вручную?


Подробнее здесь: https://stackoverflow.com/questions/790 ... properties
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Заполнение свойств на основе состояния конкретных свойств
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Заполнение свойств на основе состояния конкретных свойств
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Заполнение свойств на основе состояния конкретных свойств
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Заполнение свойств на основе состояния конкретных свойств
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Заполнение свойств на основе состояния конкретных свойств
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»