C# object 引用未设置为 IHttpActionResult 中 object 的实例
C# object reference not set to an instance of an object in IHttpActionResult
我的代码出现空引用异常时遇到了一些问题。但我不明白为什么。在下面的代码中,我的程序给了我一个 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;
}
感谢您的帮助!
假设 "FavoritesIds" 是一个列表..
它永远不会在您的代码片段中实例化。因此,当您将 {2,5,8} 分配给它时,您会得到空引用异常。
您可以通过两种方式解决这个问题。
收藏夹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;
}
或
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; }
}
我的代码出现空引用异常时遇到了一些问题。但我不明白为什么。在下面的代码中,我的程序给了我一个 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;
}
感谢您的帮助!
假设 "FavoritesIds" 是一个列表.. 它永远不会在您的代码片段中实例化。因此,当您将 {2,5,8} 分配给它时,您会得到空引用异常。
您可以通过两种方式解决这个问题。
收藏夹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; }
或
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; }
}