如何从响应对象的4个项目中获取特定项目?

时间:2018-12-04 15:32:54

标签: c# response dto

我有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; }
}

我尝试了以下方法,它返回null

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

1 个答案:

答案 0 :(得分:0)

您正在将ResponseObject属性设置为匿名对象,因此只要第一个代码段中的shippingPacakgeInfo确实是IList<ShippingPackageInfoDTO>

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