尝试为模型内部的变量赋值时出现错误[重复]

问题描述 投票:-1回答:1

当我尝试为模型中的变量赋值时出现错误。

我有以下模型设置

public class ComplianceTicketFullDetailsModel
{
    public int ComplianceTicketID { get; set; }
    public string TicketDescription { get; set; }
    public string TicketStatus { get; set; }
    public string FinalDecision { get; set; }
    public DateTime? CreatedDateTime { get; set; }
    public string CreatedBy { get; set; }
    public int? TicketOwner { get; set; }
    public string LinkedTo { get; set; }
    public int? LinkedToReferenceNumber { get; set; }
    public ComplianceTicketReceiverDetailsModel Receiver { get; set; }
    public InboundTransactionModel Transaction { get; set; }
}

public class ComplianceTicketReceiverDetailsModel
{
    public int? ReceiverID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string AffiliateName { get; set; }
    public DateTime? DOB { get; set; }
    public string FullAddress { get; set; }
    public string Country { get; set; }
    public string Nationality { get; set; }
    public string Mobile { get; set; }
    public string Email { get; set; }
}

[当我尝试在ComplianceTicketReceiverDetailsModel中为ReceiverID分配值时,它给我'对象引用未设置为对象的实例'。

ComplianceTicketFullDetailsModel complianceTicket = new ComplianceTicketFullDetailsModel();

        complianceTicket.ComplianceTicketID = result.ComplianceTicketID;
        complianceTicket.TicketDescription = result.TicketDescription;
        complianceTicket.TicketStatus = result.TicketStatus;
        complianceTicket.FinalDecision = result.FinalDecision;
        complianceTicket.CreatedDateTime = result.CreatedDateTime;
        complianceTicket.CreatedBy = result.CreatedBy;
        complianceTicket.TicketOwner = result.TicketOwner;
        complianceTicket.LinkedTo = result.LinkedTo;
        complianceTicket.LinkedToReferenceNumber = result.LinkedToReferenceNumber;

        InboundCustomerClass inboundCustomer = new InboundCustomerClass();

        if (result.LinkedTo == "CUS")
        {
            InboundAffiliateClass inboundAffiliate = new InboundAffiliateClass();
            var customerResult = inboundCustomer.getReceiverDetails(result.LinkedToReferenceNumber.Value);
            complianceTicket.Receiver.ReceiverID = customerResult.ID;
            complianceTicket.Receiver.FirstName = customerResult.FirstName;
            complianceTicket.Receiver.LastName = customerResult.LastName;
            complianceTicket.Receiver.AffiliateName = inboundAffiliate.getAffiliateNameFromID(customerResult.AgentID.Value);
            complianceTicket.Receiver.DOB = (object)customerResult.DOB == DBNull.Value ? (DateTime?)null : DateTime.Parse(customerResult.DOB.ToString());
            complianceTicket.Receiver.FullAddress = customerResult.Address + ' ' + customerResult.City + ' ' + customerResult.Postcode + ' ' + customerResult.State;
            complianceTicket.Receiver.Country = customerResult.Country;
            //complianceTicket.Receiver.Nationality = customerResult.Nationality;
            complianceTicket.Receiver.Mobile = customerResult.Mobile;
            complianceTicket.Receiver.Email = customerResult.Email;
        }

错误出现在此行:ComplianceTicket.Receiver.ReceiverID = customerResult.ID;

我已检查,customerResult.ID确实有一个值。

这可能是我完全错了。

c# nullreferenceexception
1个回答
1
投票

您尚未初始化complianceTicket.Receiver,这就是错误所指的内容,而不是customerResult。因此:

complianceTicket.Receiver = new ComplianceTicketReceiverDetailsModel();

行前

complianceTicket.Receiver.ReceiverID = customerResult.ID;
© www.soinside.com 2019 - 2024. All rights reserved.