将 List<T> 分配给属性 C# 时出错 System.NullReferenceException [duplicate]

Error System.NullReferenceException while assigning List<T> to a property C# [duplicate]

提问人:Ashok 提问时间:4/6/2017 最后编辑:Ashok 更新时间:4/6/2017 访问量:505

问:

这不是我不知道是什么.在一些不确定的情况下,我遇到了错误。NullRefrenceException

我正在尝试为某些类的属性赋值。

这是我的课程。

// These classes are in EmailProcess namspace
public class ActionedEmailReport
{
    public Message Message { get; set; }
    public string SaveToSentItems { get; set; }
}

public class ToRecipient
{
    public EmailObject.EmailAddress EmailAddress { get; set; }
}

public class Message
{
    public string Subject { get; set; }
    public Body Body { get; set; }
    public List<ToRecipient> ToRecipients { get; set; }
}

public class Body
{
    public string ContentType { get; set; }
    public string Content { get; set; }
}

// Below class in EmailObject namespace.
namespace EmailObject
{
   public class EmailAddress
   {
      public string Address { get; set; }
   }
}

这是我为类的属性赋值的代码。

public void EmailProcessing(string recepeint)
{
   ActionedEmailReport actionedReport = new ActionedEmailReport();
   List<ToRecipient>toRecipient = new List<ToRecipient>();
   EmailObject.EmailAddress emailAddress= new EmailObject.EmailAddress();
   emailAddress.Address = recepeint;
   toRecipient.Add(new ToRecipient()
{
   EmailAddress=emailAddress
});

   // I'm getting error on the below line.    
   actionedReport.Message.ToRecipients = toRecipient;
   actionedReport.Message.Body.Content = "Hello";
   actionedReport.Message.Body.ContentType = "Text";
   actionedReport.SaveToSentItems = "True";
   actionedReport.Message.Subject = "Demo Email"
}

在线上,我收到错误actionedReport.Message.ToRecipients = toRec;

System.NullReferenceException:对象引用未设置为对象的实例。

我已经正确检查了输入,并确保我为为什么出现此错误分配了一些值。这让我发疯了。toRecipient

C# 列表 NullReferenceException

评论

1赞 Joe 4/6/2017
它看起来肯定没有被分配,但在调试器下运行将能够确认这一点。actionedReport.Message
0赞 Platte Gruber 4/6/2017
toRecipient可能不是 null,但是 OR 呢?当您构建一个新的 时,它包含的对象是否实例化?MessageToRecipientsActionedEmailReport
0赞 Daniel Marques 4/6/2017
检查您的问题与该问题重复。具体来说,已接受答案的“类实例”和“间接”部分。

答:

1赞 christophano 4/6/2017 #1

中的属性未被实例化。您需要将构造函数添加到您的属性中,并新建该属性。 您可能还需要对类中的属性执行相同的操作。MessageActionedEmailReportActionedEmailReportMessageBodyMessage

评论

0赞 Ashok 4/6/2017
凉!这个伎俩奏效了。多谢。