Не реализует член интерфейса - хотя я реализовал член - PullRequest
1 голос
/ 06 августа 2020

Я новичок в C#. Я добавляю свой собственный код поверх предоставленного мне образца кода. GetFilterFileAndRelatedFiles - это мой код.

Я получаю следующее сообщение об ошибке, хотя я убедился, что метод реализован и возвращаемый тип действителен.

Если я удалю определение функции, тогда IDE жалуется, что интерфейс не реализован, поэтому я знаю, что реализую интерфейс правильно, поскольку IDE не жалуется.

Ошибка CS0535 «TradeLogDataService» не реализует член интерфейса «ITradeLogDataService.GetFilterFileAndRelatedFiles ( string) 'FileInsight FileInsight \ TradeLogDataService.cs

Это интерфейс:

using FileInsight.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace FileInsight.Services
{
    public interface ITradeLogDataService
    {
        Task<IEnumerable<DeepDiveSetting>> GetDeepDiveSettingByLogFolderID(int logFolderID);
        Task<IEnumerable<FilterFileAndRelatedFiles>> GetFilterFileAndRelatedFiles(string searchString);
    }
}

А это класс, реализующий интерфейс:

using FileInsight.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace FileInsight.Services
{
    public class TradeLogDataService : BaseDataService, ITradeLogDataService
    {
        private readonly ITradeLogDBContext _tradeLogDBContext;
        public TradeLogDataService(IHttpContextAccessor httpContextAccessor, ILogger<WebDataService> logger, ITradeLogDBContext context)
          : base(httpContextAccessor, logger)
        {
            _tradeLogDBContext = context;
        }

        public async Task<IEnumerable<DeepDiveSetting>> GetDeepDiveSettingByLogFolderID(int logFolderID)
        {
            List<DeepDiveSetting> deepDiveLists = new List<DeepDiveSetting>();
            IEnumerable<DeepDiveSetting> deepDiveSettings = await _tradeLogDBContext.GetDeepDiveSettingByLogFolderID(logFolderID);
            return deepDiveLists.ToList();
        }

        public async Task<IEnumerable<FilterFileAndRelatedFiles>> GetFilterFileAndRelatedFiles(string searchString)
        {
            List<FilterFileAndRelatedFiles> filterFileRelatedFilesList = new List<FilterFileAndRelatedFiles>();
            IEnumerable<FilterFileAndRelatedFiles> filterFileRelatedFiles = await _tradeLogDBContext.GetFilterFileAndRelatedFiles(searchString);
            return filterFileRelatedFiles.ToList();
        }
    }
}

1 Ответ

2 голосов
/ 06 августа 2020

Проблема была простой / нерешенной. В предоставленном примере кода файл TradeLogDataService.cs находился в 2 разных местах. Тот, в котором я реализовал интерфейс, не использовался. Решением было удалить неиспользуемый файл и реализовать интерфейс в правильном файле.

...