我在项目中添加了协变接口(interface):
interface IView
{
}
interface IPresenter<out TView> where TView : IView
{
TView View { get; }
}
我创建了一些类,实现了这些接口(interface):
class TestView : IView
{
}
class TestPresenter : IPresenter<TestView>
{
public TestView View
{
get { return something; }
}
private void DoSomething()
{
}
}
我可以毫无问题地使用它:
IPresenter<IView> presenter = new TestPresenter();
所以一切似乎都正确,因此我假设我的协方差用法是正确的。不幸的是,我们的单元测试项目包含来自同一项目中某些类型的私有(private)访问器,例如协变量接口(interface),这会导致构建失败。
这到底是什么问题?我的执行中是否有失败,分别。如何解决这个问题?不能是,一旦我们使用协变类型,就必须避免访问器???是否可以防止为某些类型创建访问器来解决此问题?
最佳答案
这是Visual Studio 2010中的错误。已报告给Microsoft Connect,但已关闭,显然不会得到修复。
根据Bruce Taimana的博客文章,the private accessor feature的开发已停止,并且可能在以后的Visual Studio版本中删除。列出的可能替代品有:
关于c# - 使用包含协变类型的项目的访问者在单元测试项目中构建失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3666220/