Json数据反序列化返回属性的空值

时间:2015-11-16 10:14:10

标签: c# json asp.net-web-api

$("#btn").click(function () {
    //Hide all other elements other than printarea.
    $("#printarea").show();
    window.print();
});

以上是我的整个代码。

我在反序列化jsondata时遇到了问题。从我的web api方法数据正确返回但是当来到客户端结果时,即上面的代码,而反序列化jsondata ImageInBytes属性变为null。

 private static int DefaultApiClientTimeout = 30;
    public WorkItemDetail GetWorkItemDetail(
       int userNumber, int userNumberExternal, string applicationId,
       short computerNumber, DateTime wiDate, int wiSequence,
       int wiDetailSequence, bool includeImage)
    {
        string uri = string.Format("api/work-item-detail?userNumber={0}&userNumberExternal={1}&applicationId={2}&computerNumber={3}&wiDate={4}&wiSequence={5}&wiDetailSequence={6}&includeImage={7}", userNumber, userNumberExternal, applicationId, computerNumber, wiDate, wiSequence, wiDetailSequence, includeImage);

        WorkItemDetail result = ProcessRequest<object, WorkItemDetail>(uri, "GET", null);

        return result;
    }

    public ResponseType ProcessRequest<RequestType, ResponseType>(
       string uri,
       string method = "GET",
       RequestType reqtype = default(RequestType))
       where RequestType : new()
    {
        var result = ProcessRequest<RequestType>(uri, method, reqtype);

        return JsonConvert.DeserializeObject<ResponseType>(result);
    }

    public string ProcessRequest<RequestType>(
        string uri,
        string method = "GET",
        RequestType reqtype = default(RequestType))
        where RequestType : new()
    {
        var request = CreateWebRequest(uri, method);

        var x = (HttpWebResponse)request.GetResponse(); //the exception :(

        var strResult = new StreamReader(x.GetResponseStream()).ReadToEnd();

        return strResult;

    }

    public WebRequest CreateWebRequest(string uri, string method = "GET")
    {
        string url = "http://localhost:3144/" + uri;

        var request = WebRequest.Create(url);

        request.ContentType = "application/json; charset=utf-8";

        request.Method = method;

        //Convert minutes to milliseconds.

        request.Timeout = DefaultApiClientTimeout * 60000;

        return request;

    }

其他代码返回

[Serializable]
public class WorkItemDetail : IWorkItemKey
{
    private byte[] thumbnailImage;

    private byte[] image;

    private short wiDetailSequence;

    private string workItemDetailType;

    private int networkShare;

    private string networkSharePath;

    private string filePath;

    private string displayImageFileName;

    private string imagePath;

    private DateTime workItemDate;

    private string documentOcr;


    #region Work Item Members


    /// <summary>
    /// This will actually be a ShortDate from the database
    /// </summary>
    public DateTime WorkItemDate
    {
        get { return workItemDate; }
        set { workItemDate = value; }
    }

    private int wiSequence;

    public int WISequence
    {
        get { return wiSequence; }
        set { wiSequence = value; }
    }

    public short WIDetailSequence
    {
        get { return wiDetailSequence; }
        set { wiDetailSequence = value; }
    }

    private short _otherSideWIDetailSequence;

    public short OtherSideWIDetailSequence
    {
        get { return _otherSideWIDetailSequence; }
        set { _otherSideWIDetailSequence = value; }
    }


    private string sourceType;

    public string SourceType
    {
        get { return sourceType; }
        set { sourceType = value; }
    }

    private string sourceIdentifier;
    public string SourceIdentifier
    {
        get { return sourceIdentifier; }
        set { sourceIdentifier = value; }
    }
    #endregion


    private int _reason;

    public int Reason
    {
        get { return _reason; }
        set { _reason = value; }
    }

    private short _computerNumber;

    public short ComputerNumber
    {
        get { return _computerNumber; }
        set { _computerNumber = value; }
    }

    private string _computerName;

    public string ComputerName
    {
        get { return _computerName; }
        set { _computerName = value; }
    }

    private DateTime? _WIDateDest;

    public DateTime? WIDateDest
    {
        get { return _WIDateDest; }
        set { _WIDateDest = value; }
    }

    private int? _WISequenceDest;

    public int? WISequenceDest
    {
        get { return _WISequenceDest; }
        set { _WISequenceDest = value; }
    }

    private short? _WIDetailSequenceDest;

    public short? WIDetailSequenceDest
    {
        get { return _WIDetailSequenceDest; }
        set { _WIDetailSequenceDest = value; }
    }

    private short? _OtherSideWIDetailSequenceDest;

    public short? OtherSideWIDetailSequenceDest
    {
        get { return _OtherSideWIDetailSequenceDest; }
        set { _OtherSideWIDetailSequenceDest = value; }
    }


    public string WorkItemDetailType
    {
        get { return workItemDetailType; }
        set { workItemDetailType = value; }
    }

    public int NetworkShare
    {
        get { return networkShare; }
        set { networkShare = value; }
    }

    public string NetworkSharePath
    {
        get { return networkSharePath; }
        set { networkSharePath = value; }
    }

    public string FilePath
    {
        get { return filePath; }
        set { filePath = value; }
    }

    public string DisplayImageFileName
    {
        get { return displayImageFileName; }
        set { displayImageFileName = value; }
    }

    public string ImagePath
    {
        get { return imagePath; }
        set { imagePath = value; }
    }

    public byte[] ImageInBytes
    {
        get { return image; }
        set { image = value; }
    }



    public byte[] ThumbnailImage
    {
        get { return thumbnailImage; }
        set { thumbnailImage = value; }
    }


    private string ocrData;

    public string OCRData
    {
        get { return ocrData; }
        set { ocrData = value; }
    }
    private string _userName;

    public string UserName
    {
        get { return _userName; }
        set { _userName = value; }
    }

    private bool? _isCorrespondence;

    public bool? IsCorrespondence
    {
        get { return _isCorrespondence; }
        set { _isCorrespondence = value; }
    }

    private bool? isCorrespondenceDBValue;

    public bool? IsCorrespondenceDBValue
    {
        get { return isCorrespondenceDBValue; }
        set { isCorrespondenceDBValue = value; }
    }



    private Guid? wfInstanceId;

    public Guid? WFInstanceId
    {
        get { return wfInstanceId; }
        set { wfInstanceId = value; }
    }

    private DateTime _transactionTime;
    public DateTime TransactionTime
    {
        get { return _transactionTime; }
        set { _transactionTime = value; }
    }

    private DateTime _endTime;
    public DateTime EndTime
    {
        get { return _endTime; }
        set { _endTime = value; }
    }

    private string _transactionType;
    public string TransactionType
    {
        get { return _transactionType; }
        set { _transactionType = value; }
    }

    private string _applicationId;
    public string ApplicationId
    {
        get { return _applicationId; }
        set { _applicationId = value; }
    }

    private string _applicationName;
    public string ApplicationName
    {
        get { return _applicationName; }
        set { _applicationName = value; }
    }

    private bool isFront;
    public bool IsFront
    {
        get { return isFront; }
        set { isFront = value; }
    }

    private int _userNumber;
    public int UserNumber
    {
        get { return _userNumber; }
        set { _userNumber = value; }
    }



    private string barcode1;

    public string BarCode1
    {
        get { return barcode1; }
        set { barcode1 = value; }
    }

    private string barcode2;
    public string BarCode2
    {
        get { return barcode2; }
        set { barcode2 = value; }
    }

    private string barcode3;
    public string BarCode3
    {
        get { return barcode3; }
        set { barcode3 = value; }
    }

    private string barcode4;
    public string BarCode4
    {
        get { return barcode4; }
        set { barcode4 = value; }
    }

    private string barcode5;
    public string BarCode5
    {
        get { return barcode5; }
        set { barcode5 = value; }
    }

    private bool? markSense1;

    public bool? MarkSense1
    {
        get { return markSense1; }
        set { markSense1 = value; }

    }

    private bool? markSense2;

    public bool? MarkSense2
    {
        get { return markSense2; }
        set { markSense2 = value; }
    }

    private bool? markSense3;

    public bool? MarkSense3
    {
        get { return markSense3; }
        set { markSense3 = value; }
    }

    private bool? markSense4;

    public bool? MarkSense4
    {
        get { return markSense4; }
        set { markSense4 = value; }
    }

    private bool? markSense5;

    public bool? MarkSense5
    {
        get { return markSense5; }
        set { markSense5 = value; }
    }

    private bool? markSense6;

    public bool? MarkSense6
    {
        get { return markSense6; }
        set { markSense6 = value; }
    }

    private bool? markSense7;

    public bool? MarkSense7
    {
        get { return markSense7; }
        set { markSense7 = value; }
    }

    private bool? markSense8;

    public bool? MarkSense8
    {
        get { return markSense8; }
        set { markSense8 = value; }
    }

    private bool? markSense9;

    public bool? MarkSense9
    {
        get { return markSense9; }
        set { markSense9 = value; }
    }

    private bool? markSense10;

    public bool? MarkSense10
    {
        get { return markSense10; }
        set { markSense10 = value; }
    }


    private string data;
    public string Data
    {
        get { return data; }
        set { data = value; }
    }

    private string auditTrail;

    public string AuditTrail
    {
        get { return auditTrail; }
        set { auditTrail = value; }
    }

    private short? displayImageHorizontalPixels;

    public short? DisplayImageHorizontalPixels
    {
        get { return displayImageHorizontalPixels; }
        set { displayImageHorizontalPixels = value; }
    }

    private short? displayImageVerticalPixels;

    public short? DisplayImageVerticalPixels
    {
        get { return displayImageVerticalPixels; }
        set { displayImageVerticalPixels = value; }
    }

    private short? displayImageHorizontalResolution;

    public short? DisplayImageHorizontalResolution
    {
        get { return displayImageHorizontalResolution; }
        set { displayImageHorizontalResolution = value; }
    }

    private short? displayImageVerticalResolution;

    public short? DisplayImageVerticalResolution
    {
        get { return displayImageVerticalResolution; }
        set { displayImageVerticalResolution = value; }
    }

    private byte? displayImageColorDepth;

    public byte? DisplayImageColorDepth
    {
        get { return displayImageColorDepth; }
        set { displayImageColorDepth = value; }
    }

    private int displayImageBytes;

    public int DisplayImageBytes
    {
        get { return displayImageBytes; }
        set { displayImageBytes = value; }
    }

    private byte[] displayImageMD5Hash;

    public byte[] DisplayImageMD5Hash
    {
        get { return displayImageMD5Hash; }
        set { displayImageMD5Hash = value; }

    }

    private string iclImageFileName;

    public string ICLImageFileName
    {
        get { return iclImageFileName; }
        set { iclImageFileName = value; }
    }

    private short? iCLImageHorizontalPixels;

    public short? ICLImageHorizontalPixels
    {
        get { return iCLImageHorizontalPixels; }
        set { iCLImageHorizontalPixels = value; }
    }

    private short? iCLImageVerticalPixels;

    public short? ICLImageVerticalPixels
    {
        get { return iCLImageVerticalPixels; }
        set { iCLImageVerticalPixels = value; }
    }

    private short? iCLImageHorizontalResolution;

    public short? ICLImageHorizontalResolution
    {
        get { return iCLImageHorizontalResolution; }
        set { iCLImageHorizontalResolution = value; }
    }

    private short? iCLImageVerticalResolution;

    public short? ICLImageVerticalResolution
    {
        get { return iCLImageVerticalResolution; }
        set { iCLImageVerticalResolution = value; }
    }

    private byte? iCLImageColorDepth;

    public byte? ICLImageColorDepth
    {
        get { return iCLImageColorDepth; }
        set { iCLImageColorDepth = value; }
    }

    private int iCLImageBytes;

    public int ICLImageBytes
    {
        get { return iCLImageBytes; }
        set { iCLImageBytes = value; }
    }

    private byte[] iCLImageMD5Hash;

    public byte[] ICLImageMD5Hash
    {
        get { return iCLImageMD5Hash; }
        set { iCLImageMD5Hash = value; }
    }

    private string preparedFilePath;

    public string PreparedFilePath
    {
        get { return preparedFilePath; }
        set { preparedFilePath = value; }
    }

    private string displayImageFullPath;
    public string DisplayImageFullPath
    {
        get { return displayImageFullPath; }
        set { displayImageFullPath = value; }
    }

    /// <summary>
    /// The results of full page OCR for this image, if available. This field may
    /// not always be populated depending on the service method invoked and/or configuration
    /// of document OCR for the particular site.
    /// </summary>
    public string DocumentOcr
    {
        get { return documentOcr; }
        set { documentOcr = value; }
    }

    private OcrDataRecord _ocrrecord;

    /// <summary>
    /// Fully parsed ocr data.
    /// </summary>
    public OcrDataRecord OcrRecord
    {
        get { return _ocrrecord; }
        set { _ocrrecord = value; }
    }

    private string _workItemLogNote;

    public string WorkItemLogNote
    {
        get { return _workItemLogNote; }
        set { _workItemLogNote = value; }
    }


    private bool _isDeleted;

    public bool IsDeleted
    {
        get { return _isDeleted; }
        set { _isDeleted = value; }
    }
    public override string ToString()
    {
        return string.Format("WIDate: {0} ,WISequence: {1},  WIDetailSequence: {2}, WIDetailType: {3}",
            WorkItemDate.ToShortDateString(), WISequence, WIDetailSequence, WorkItemDetailType);
    }

    private DateTime? _batchStartDate;
    public DateTime? BatchStartDate
    {
        get { return _batchStartDate; }
        set { _batchStartDate = value; }
    }

    private short? _batchSeqNum;
    public short? BatchSeqNum
    {
        get { return _batchSeqNum; }
        set { _batchSeqNum = value; }
    }

    private short? _envelopeSequence;
    public short? EnvelopeSequence
    {
        get { return _envelopeSequence; }
        set { _envelopeSequence = value; }
    }
}

0 个答案:

没有答案