2017-05-07 108 views
0

我的代碼給出nullreferenceexception時遇到了一些問題。但我不明白爲什麼。在下面的代碼中,我的程序給了我一個nullrefexc。C#對象引用未設置爲IHttpActionResult中對象的實例

第二個代碼部分是'var模型'應該表示的變量。我也嘗試使用第二部分代碼,但是如果我在IHttpActionResult代碼中使用變量收藏夾,它也會說明。

例外:

  public IHttpActionResult GetAllFavorites() 
      { 
       var models = _favoriteModelFactory.CreateFavoritesFromFavoriteModel(_favoriteRepository.GetAll(), 
        _favoriteRepository); 
       return Ok(models); 
      } 

第二部分:

 public IEnumerable<Favorite> GetAll() 
    { 
     IEnumerable<Favorite> favorites = new List<Favorite> 
     { 
      new Favorite 
      { 
       StudentId = 1, 
       FavoritesIds = {2,5,8}, 
       FavoriteId = 1 
      } 
     }; 
     return favorites;   
    } 

感謝您的幫助!

回答

0

假設「FavoritesIds」是一個列表.. 它永遠不會在您的代碼片段中實例化。所以當你爲它分配{2,5,8}時,你會得到空引用異常。

你可以用兩種方法解決這個問題。

  1. 在收藏類的構造函數

  2. 在GETALL()方法

    public static IEnumerable<Favorite> GetAll() 
         { 
          IEnumerable<Favorite> favorites = new List<Favorite>() 
         { 
          new Favorite 
          { 
           StudentId = 1, 
           FavoritesIds = new List<int> {2,5,8}, 
           FavoriteId = 1 
          } 
         }; 
          return favorites; 
         }  
    

OR

public class Favorite 
    { 
     public Favorite() 
     { 
      FavoritesIds = new List<int>(); 
     } 
     public int StudentId { get; set; } 
     public List<int> FavoritesIds { get; set; } 
     public int FavoriteId { get; set; } 
    } 
+0

嗯,這是我的一個愚蠢的錯誤,我忘了這是一個列表..我認爲這是一個數組,但是臨屋區請你幫忙! – BrianM

相關問題