找不到类型或命名空间“IRange”

本文关键字:IRange 命名空间 类型 找不到 | 更新日期: 2023-09-27 18:33:06

我正在使用 C#.net 4.0 和 Visual Studio 2010。我收到错误

错误 10 找不到类型或命名空间名称"IRange"(是 缺少 using 指令或程序集 参考? C:''git''emtexporter''EMTExporter.IRepository''IRangeRepository.cs 11 27 EMTExporter.IRepository

IRange 是项目 EMTExporter.IEntities 中的一个接口,并且项目 IEntities 已成功构建。IRange.cs有代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Wiggle.EMTExporter.IEntities;
namespace Wiggle.CategoryXMLExporter.IEntities
{
    interface IRange
    {
        long ID { get; }
        Dictionary<ILanguage, string> rangeNames { get; set; }
    }
}

问题出现在IRangeRepository中.cs它具有以下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Wiggle.EMTExporter.IEntities;
namespace CategoryXMLExporter.IRepository
{
    interface IRangeRepository
    {
        Dictionary<string,IList<IRange>> getAllRanges();
    }
}

我在IRepository项目中引用EMTExporter.IEntities。我不知道可能出了什么问题!

编辑:问题是项目已从 CategoryXMLExporter 更改为 EMTExporter,但我没有更新项目的程序集名称和默认命名空间。更新了,公开了界面,现在可以工作了!

找不到类型或命名空间“IRange”

您的界面不是公开的,请尝试以下操作

public interface IRange  

默认的可访问性级别顶级类和接口是 internal ,而不是public,因此如果它们在不同的项目中,它将不可见。

直接在命名空间中声明的类和结构(换句话说,未嵌套在其他类或结构中)可以是公共的,也可以是内部的。如果未指定访问修饰符,则默认为"内部"。

namespace Wiggle.CategoryXMLExporter.IEntities
{
    public interface IRange
    {
        long ID { get; }
        Dictionary<ILanguage, string> rangeNames { get; set; }
    }
}
您需要将

命名空间Wiggle.CategoryXMLExporter.IEntities添加到 using 子句中,因为IRange在此处定义:

using Wiggle.CategoryXMLExporter.IEntities;

此外,如果它位于不同的程序集中,则需要使其public

IRange在命名空间Wiggle.CategoryXMLExporter.IEntities中,因此您需要引用它。还要使界面public

除了上面提到的内容之外,有时您可能需要确保将引用的库配置为在选定的活动配置和平台下构建。

  1. 在Visual Studio 2012或2013中,右键单击解决方案并选择"配置管理器"。

  2. 对于选定的"活动解决方案配置"(例如"调试"或"
  3. 发布")和"活动解决方案平台"(例如"任何CPU"、"x64"、"x86"或"ARM"),请确保包含接口及其任何依赖项的项目已选中"生成"。