C#对象引用未设置为IHttpActionResult中对象的实例

时间:2017-05-07 11:33:03

标签: c# exception get nullreferenceexception actionresult

我的代码出现了一些问题,给出了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;         
    }

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

假设“FavoritesIds”是一个列表.. 它永远不会在您的代码段中实例化。因此,当您为其分配{2,5,8}时,您将获得空引用异常。

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

  1. 在Favorite 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;
            }    
    
  3. 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; }
        }