将列表 <T> 分配给 属性 C# 时出错 System.NullReferenceException

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

这不是我不知道什么是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:Object reference not set to an instance of an object.

我已正确检查输入并确定我正在为 toRecipient 分配一些值,这就是我收到此错误的原因。这让我发疯。

ActionedEmailReport 中的 Message 属性 没有被实例化。您需要向 ActionedEmailReport 添加构造函数并新建 Message 属性。 您可能还需要对 Message class 中的 Body 属性 执行相同的操作。