无法满足接口契约

本文关键字:契约 接口 无法满足 | 更新日期: 2023-09-27 18:05:37

我有一个接口和一个实现该接口的类。Visual Studio没有意识到我正在实现接口所需的一个特定方法。我只在构建时得到错误。Resharper没有提醒我代码的任何问题,一切看起来都是正确的。

我的界面
public interface IViewFactory
{
    IDpaView MakeDpaView();
    IFileSelectorView MakeFileSelectorView(IFileService fileService);
    IDelqReportView MakeDelqReportView();
}
实施

public class ViewFactory : IViewFactory
{
    public IDpaView MakeDpaView() {
        return new DpaView();
    }
    public IFileSelectorView MakeFileSelectorView(IFileService fileService) {
        var fileSelectorView = new FileSelectorView {
            FileService = fileService
        };
        return fileSelectorView;
    }
    public IDelqReportView MakeDelqReportView() {
        return new DelqReportView();
    }
}

IFileSelectorView实现

public partial class FileSelectorView : Form, IFileSelectorView
{
    public FileSelectorView() {
        InitializeComponent();
    }
    public IFileService FileService {
        set { fileSelector.FileService = value; }
    }
    public event EventHandler<PathSelectedEventArgs> PathSelected;
    private void fileSelector_PathSelected(object sender, PathSelectedEventArgs e) {
        if (PathSelected == null)
            return;
        PathSelected(this, e);
    }
}

我在ViewFactory中没有展示的其他方法工作得很好。问题是,当我构建时,我得到

name.space.DPA.Win。ViewFactory'没有实现接口成员'name.space.Presentation.IViewFactory.MakeFileSelectorView()'…

,但它确实实现了这个方法。到底发生了什么事?

无法满足接口契约

物理计算机重新启动修复了我的问题。我已经尝试了多次干净构建并多次重启Visual Studio,但我想有时没有什么比完全重启更重要的了?