0

我有两个项目。第一个是 Wpf Project (FrameWork 3.5) 和下一个界面:

public interface View
{
    ObservableCollection<int> Items { set; }  
}

和测试项目(FrameWork 4.0)

public class ViewFake:View
{
    public ObservableCollection<int> Items
    {
        set { throw new NotImplementedException(); }
    }
}

我收到此错误:

ViewFake' 没有实现接口成员'View.Items'。“ViewFake.Items”无法实现“View.Items”,因为它没有匹配的返回类型“System.Collections.ObjectModel.ObservableCollection`1”。

我查看了 ObservableCollection 在两个版本中的位置,并且

那么,唯一的解决方案是升级主项目还是降级测试项目?

4

1 回答 1

1

如果我没记错的话,ObservableCollection 在 .NET 3.5 中位于 System.Windows.* 命名空间中,并且只有在 4.0 中它才被移到 System.Collections.ObjectModel 命名空间中。

*update:改变的不是命名空间,而是程序集。但是结果是一样的:.NET 认为它是不同的类型,因为包含的程序集是类型信息的一部分。

这里更大的问题是您的测试和被测类使用不同的 .NET 框架版本和不同版本的公共语言运行时。这可能会以眼泪收场。您可以为您的项目使用相同的版本吗?

于 2012-08-17T18:39:35.107 回答