可访问性不一致:属性类型' IProductRepository'无法找到

时间:2018-02-10 22:19:48

标签: c# asp.net visual-studio repository

  

错误:可访问性不一致:属性类型' IEnumerable< product>比IProductRepository.Products'

更不易获取
namespace SportsStore.Domain.Abstract
{
    public interface IProductRepository
    {
        IEnumerable<Product> Products { get; }            
    }
}

我不明白错误信息的含义;有人可以帮我确定一下是什么错误吗?

1 个答案:

答案 0 :(得分:0)

如果您有以下任何类定义:

class Product // defaults to internal

internal class Product

然后在程序集外部看不到Product类型。如果您定义此接口,则会发生冲突:

public interface IProductRepository
{
    IEnumerable<Product> Products { get; }            
}

这表示界面为public,从程序集外部可见。但这是不可能的,因为它包含一个类型 - Product - 在程序集外部可见。它就像一家商店,销售的产品不允许客户了解。它没有意义。

无法协调这种不一致性,因此编译器不会构建它。

您可以同时internal或同时public。您可以设置界面internalProduct public。但是由于它产生的冲突,你无法建立界面publicProduct internal