Как получить конкретный предмет из Response Object? - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть объект Respone, который возвращает 4 значения. Мне нужно получить только одну конкретную деталь.

 ResponseDTO responseDto = new ResponseDTO();

responseDto.ResponseObject = new
{
    ShippingPackageInfoList = shippingPacakgeInfo,
    IsDifferentLotNumber = diffLotNumber,
    IsDifferentLocation = diffLocation,
    IsPartMappedToTote = partTote != null
};

В этом мне нужно получить только один shippingpackageInfo, который является List, и мне нужно выполнить итерацию для доступазначения.

Класс ResponseDTO Содержит:

  public class ResponseDTO
{
    public bool IsSuccess { get; set; }

    public string UserMessage { get; set; }

    public string TechMessage { get; set; }

    public string Status { get; set; }

    public object ResponseObject { get; set; }

    public bool RestrictApproveAction { get; set; }

    public bool IsAlreadyExists { get; set; }
}

Я пробовал следующий метод, он возвращает нуль

IList<ShippingPackageInfoDTO> generatedShippingPackageList = generatedData as IList<ShippingPackageInfoDTO>;
IList generatedShippingPackageList = (IList)generatedData;
IEnumerable e = generatedData as IEnumerable;
IEnumerable<ShippingPackageInfoDTO> generatedShippingPackageList = e.OfType<ShippingPackageInfoDTO>();

1 Ответ

0 голосов
/ 04 декабря 2018

Вы устанавливаете свойство ResponseObject для анонимного объекта, поэтому это должно работать при условии, что shippingPacakgeInfo в вашем первом фрагменте кода действительно является IList<ShippingPackageInfoDTO>:

dynamic responseObject = generatedData.ResponseObject;
IList<ShippingPackageInfoDTO> generatedShippingPackageList = 
    responseObject.ShippingPackageInfoList as IList<ShippingPackageInfoDTO>;
...