2017-04-05 34 views
-2

這不是我不知道什麼是NullRefrenceException。有一些不確定的情況,我得到的錯誤。錯誤System.NullReferenceException同時將列表<T>分配給屬性C#

我想給某些類的屬性賦值。

這是我的課程。

// 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" 
} 

在我收到錯誤

System.NullReferenceException行actionedReport.Message.ToRecipients = toRec;:對象引用不設置到對象的實例。

我已經檢查輸入正確,並確定我分配一些值toRecipient然後爲什麼我得到這個錯誤。這真讓我抓狂。

+1

它看起來像'actionedReport.Message'尚未分配,但在調試器下運行將能夠確認這一點。 – Joe

+0

'toRecipient'可能不爲null,但'Message'或'ToRecipients'如何?當你建立一個新的'ActionedEmailReport'時,它包含的對象是實例化的嗎? – pgruber

+0

檢查你的問題是重複的。特別是接受答案的「類實例」和「間接」部分。 –

回答

1

ActionedEmailReport中的Message屬性未被實例化。您需要將一個構造函數添加到您的ActionedEmailReport和新增的Message屬性中。 您可能還需要對Message類中的Body屬性也做同樣的事情。

+0

酷!這個技巧奏效了。非常感謝。 –