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} 分配给它时,您会得到空引用异常。

您可以通过两种方式解决这个问题。

  1. 收藏夹class构造器

  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;
            }    
    

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; }
    }