我有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>();
答案 0 :(得分:0)
您正在将ResponseObject
属性设置为匿名对象,因此只要第一个代码段中的shippingPacakgeInfo
确实是IList<ShippingPackageInfoDTO>
:
dynamic responseObject = generatedData.ResponseObject;
IList<ShippingPackageInfoDTO> generatedShippingPackageList =
responseObject.ShippingPackageInfoList as IList<ShippingPackageInfoDTO>;