C# 实现TodoList服务时在Asp.net core中获取错误

C# 实现TodoList服务时在Asp.net core中获取错误,c#,asp.net,asp.net-mvc,service,interface,C#,Asp.net,Asp.net Mvc,Service,Interface,下面是创建TodoList并使用多层结构处理不同业务逻辑的教程。当我从书中复制代码时,在windows cmd中启动dotnet run命令时会显示一个错误。我得到的错误显示在下面,因此我可以指定问题所在,但不知道如何解决。我能做些什么来让它工作?我使用的是dotnet3.0.100版本 Services\FakeTodoItemService.cs21,17:错误CS0117:“FakeTodoItemService”不存在 不包含“标题”的定义[C:\dotnetproject\AspNet

下面是创建TodoList并使用多层结构处理不同业务逻辑的教程。当我从书中复制代码时,在windows cmd中启动dotnet run命令时会显示一个错误。我得到的错误显示在下面,因此我可以指定问题所在,但不知道如何解决。我能做些什么来让它工作?我使用的是dotnet3.0.100版本

Services\FakeTodoItemService.cs21,17:错误CS0117:“FakeTodoItemService”不存在 不包含“标题”的定义[C:\dotnetproject\AspNetCoreTodo\AspNetCor eTodo\AspNetCoreTodo.csproj]Services\faketodotemservice.cs22,17:错误CS0117:“faketodotemservice”不包含“DueAt”的定义[C:\dotnetproject\AspNetCoreTodo\AspNetCor eTodo\AspNetCoreTodo.csproj]

这是一个代码,我认为可能是这个错误的原因。基本上,我有一个使用模型实现接口的服务

faketodotemservice.cs

using System; 
using System.Collections.Generic; 
using System.Linq;
using System.Threading.Tasks;
using AspNetCoreTodo.Data;
using AspNetCoreTodo.Models;

namespace AspNetCoreTodo.Services
 {              
    public class FakeTodoItemService : ITodoItemService             
    {                               
        public Task<TodoItem[]> GetIncompleteItemsAsync()
        {
            var item1 = new TodoItem
            {
                Title = "Learn ASP.NET Core",
                DueAt = DateTimeOffset.Now.AddDays(1)
            };
            var item2 = new FakeTodoItemService
            {
                Title = "Build awesome apps",
                DueAt = DateTimeOffset.Now.AddDays(2)
            };

             return Task.FromResult(new[] {item1, item2});
        }
    } 
 }
using System;
using System.Collections.Generic; 
using System.Threading.Tasks;
using AspNetCoreTodo.Models;


namespace AspNetCoreTodo.Services 
{
    public interface ITodoItemService 
    {
        Task<TodoItem[]> GetIncompleteItemsAsync();
    } 
}
ITodoItemService.cs

using System; 
using System.Collections.Generic; 
using System.Linq;
using System.Threading.Tasks;
using AspNetCoreTodo.Data;
using AspNetCoreTodo.Models;

namespace AspNetCoreTodo.Services
 {              
    public class FakeTodoItemService : ITodoItemService             
    {                               
        public Task<TodoItem[]> GetIncompleteItemsAsync()
        {
            var item1 = new TodoItem
            {
                Title = "Learn ASP.NET Core",
                DueAt = DateTimeOffset.Now.AddDays(1)
            };
            var item2 = new FakeTodoItemService
            {
                Title = "Build awesome apps",
                DueAt = DateTimeOffset.Now.AddDays(2)
            };

             return Task.FromResult(new[] {item1, item2});
        }
    } 
 }
using System;
using System.Collections.Generic; 
using System.Threading.Tasks;
using AspNetCoreTodo.Models;


namespace AspNetCoreTodo.Services 
{
    public interface ITodoItemService 
    {
        Task<TodoItem[]> GetIncompleteItemsAsync();
    } 
}

在FakeTodoItemService.GetIncompleteItemsAsync中,您有一行var item2=new FakeTodoItemService。FakeTodoItemService应该是TodoItem。

您是否在所有项目上都进行了干净的构建?如果您没有遇到编译器错误,那么看起来有些代码在进行更改后没有被编译。这真是一个愚蠢的错误。你的回答解决了我的问题。