Ссылка на объект C# не установлена на экземпляр объекта в IHttpActionResult
У меня были некоторые проблемы с моим кодом, дающим исключение nullreference. Но я не понимаю почему. В приведенном ниже коде моя программа дает мне nullrefexc.
Вторая часть кода - это переменная, которую должны представлять "модели 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;
}
Спасибо за помощь!
1 ответ
Решение
Предполагая, что "FavoritesIds" является списком. Он никогда не создается в вашем фрагменте кода. Поэтому, когда вы назначаете {2,5,8} ему, вы получаете исключение нулевой ссылки.
Вы можете решить это двумя способами.
В любимом конструкторе классов
В методе 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; }
}