webapi,阅读微软文章,但包含错误

时间:2016-05-24 07:34:13

标签: asp.net asp.net-mvc web-services asp.net-web-api

我正在读这篇文章:

https://docs.asp.net/en/latest/tutorials/first-web-api.html

他们说。你必须把这个:

using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
using TodoApi.Models;

    namespace TodoApi.Controllers
    {
        [Route("api/[controller]")]
        public class TodoController : Controller
        {
            public TodoController(ITodoRepository todoItems)
            {
                TodoItems = todoItems;
            }
        }
    }

TodoItems在哪里宣布?

我有什么不对吗?或者这篇文章有误吗?

因为如果我把它放在文件中:

public ITodoRepository TodoItems { get; private set; }        

错误消失了。但这是对的吗?

1 个答案:

答案 0 :(得分:1)

这可能是错误的。你应该声明为:

    public class TodoController : Controller
    {
        private readonly ITodoRepository TodoItems;

        public TodoController(ITodoRepository todoItems)
        {
            TodoItems = todoItems;
        }
    }

这是构造函数使用dependency injection
所以,我认为将TodoItems声明为public属性并不是一个好主意。它应该是仅在构造函数中初始化的private readonly字段。在其他情况下,如果您要使用继承,则可能会将其声明为protected