2014-03-04 42 views
0

我有這樣添加模型對象列表失敗

namespace ConnectBLL.DTO.Response 
{ 
    public class CategorySettings 
    { 
     public bool NeedsLoginToViewLongText { get; set; } 
     public bool NeedsLoginToViewAnyDetails { get; set; } 
     public bool ShowAttachment { get; set; } 
     public string CategoryPageID { get; set; } 
     public string TpUrl { get; set; } 
    } 

    public class CategorySettingsListResponse 
    { 
     public List<CategorySettings> CategorySettingsList { get; set; } 
    } 
} 

模型類,我試圖將數據添加到它像這樣

private readonly CategorySettings cs = new CategorySettings(); 
CategorySettingsListResponse csr=new CategorySettingsListResponse(); 
public string GetAllCategorySettings() 
    { 


      cs.NeedsLoginToViewLongText = true; 
      cs.NeedsLoginToViewAnyDetails = false; 
      cs.ShowAttachment = true; 
      cs.CategoryPageID = "1"; 
      cs.TpUrl = "url"; 
      csr.CategorySettingsList.Add(cs); 

    } 

但這種失敗,並給出了一個錯誤

Object reference not set to an instance of an object. 

有沒有人能指出我做錯了什麼?

+1

如果定義'cs'? – Ofiris

+0

@Ofiris我錯過了這個問題。現在添加 – Athul

回答

2

某處,你需要初始化CategorySettingsList

public class CategorySettingsListResponse 
{ 
    CategorySettingsListResponse() { 
     CategorySettingsList = new List<CategorySettings>(); 
    } 

    public List<CategorySettings> CategorySettingsList { get; set; } 
} 
1

您正在使用受造的對象csCategorySettingsList,你應該使用之前創建它們:

public string GetAllCategorySettings() 
{ 
    csr.CategorySettingsList = new ListCategorySettings<>(); 
    var cs = new CategorySettings 
     { 
      NeedsLoginToViewLongText = true, 
      ... 
1

什麼是CS?有什麼遺漏?

你忘了這樣做:

var cs = new CategorySettings(); 

而且

您需要實例化CategorySettingsList在構造函數CategorySettingsListResponse。

2

您正在初始化之前綁定使用List實例。

之前
csr.CategorySettingsList.Add(cs); 

插入:

if (csr.CategorySettingsList == null) { 
    csr.CategorySettingsList = new List<CategorySettings>(); 
} 
+1

或者只是將它放在'CategorySettingsListResponse'構造函數中 – musefan