我的代码出现了一些问题,给出了nullreferenceexception。但我不明白为什么。在下面的代码中,我的程序给了我一个nullrefexc。
第二个代码部分是'var models'应该代表的变量。我也尝试使用第二部分代码,但如果我在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 :(得分:1)
假设“FavoritesIds”是一个列表.. 它永远不会在您的代码段中实例化。因此,当您为其分配{2,5,8}时,您将获得空引用异常。
您可以通过两种方式解决此问题。
在Favorite class构造函数
在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; }
}