【问题标题】:Api in .Net Core System.NullReferenceException.Net Core System.NullReferenceException 中的 Api
【发布时间】:2021-07-25 19:34:37
【问题描述】:

我刚刚开始了解 Api 并开始构建一个简单的。 我构建了这个 EmployeeController:

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;

namespace ApiHandsOn1.Controllers
{
    [Route("api/Employee")]
    [ApiController]
    public class EmployeeController : Controller
    {
        List<Employee> _employeeList = new List<Employee>()
            {
                new Employee()
                {
                    Id=1,
                    Name= "abc def",
                    Salary=20000,
                    Permanent= true,
                    //Department= { Id = 1, Name = "Payroll"},
                    Skills ={new Skill{ Id= 1 , Value= "HTML"},new Skill{ Id= 2 , Value="CSS"},new Skill{ Id= 1 , Value= "JS"} },
                    DateOfBirth = new DateTime(01/03/2002)
                },
                new Employee()
                {
                    Id=2,
                    Name= "ghi jkl",
                    Salary=25000,
                    Permanent= false,
                    //Department= { Id = 2, Name = "HR"},
                    Skills ={new Skill{ Id= 1 , Value= "HTML"},new Skill{ Id= 2 , Value="CSS"},new Skill{ Id= 1 , Value= "JS"} },
                    DateOfBirth = new DateTime(15/08/2005)
                }
            };

        public EmployeeController()
        {
            
        }

        private List<Employee> GetStandardEmployeeList()
        {
            
            return _employeeList;
        }
        // GET: EmployeeController
        [HttpGet]
        [Route("GetEmployees")]
        [ProducesResponseType(StatusCodes.Status200OK)]
        public List<Employee> GetStandard()
        {
            List<Employee> empList=GetStandardEmployeeList();
            return empList;
        }

       
    }
}

我已经为各个班级建立了模型。 但是当我在 Swagger 上执行时,它会引发异常(在 _employeeList):

System.NullReferenceException: '对象引用未设置为对象的实例。'

我错过了什么?

【问题讨论】:

  • 哪里抛出了异常?
  • 我在哪里初始化列表_employeeList。
  • 尝试在构造函数中初始化列表
  • @AmirHosseinParsapour 我也试过了,但仍然出现同样的错误。
  • 你不会像那样初始化DateTime;你会得到一个非常意想不到的价值。

标签: c# api .net-core


【解决方案1】:

您需要像这样初始化Skills 属性:

Skills = new List<Skill>(){new Skill{}, new Skill{}}

正如@smoksnes 所提到的,您应该将您的值放在DateTime Initialization 中的文字之间

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-19
    • 2018-05-08
    • 2019-05-09
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    相关资源
    最近更新 更多