0

Visual Studio 2010 で C#.net 4.0 を使用しています。エラーが発生しています

エラー 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 に変更されたことですが、プロジェクトのアセンブリ名と既定の名前空間を更新していませんでした。それを更新し、インターフェースを公開し、今では動作します!

4

5 に答える 5

4

あなたのインターフェースは公開されていません。以下を試してください

public interface IRange  
于 2012-05-04T11:45:24.453 に答える
2

デフォルトのアクセシビリティ レベルのトップ レベル クラスとインターフェイスはinternalであり、 ではないpublicため、これらが異なるプロジェクトにある場合は表示されません。

名前空間内で直接宣言されている (つまり、他のクラスまたは構造体にネストされていない) クラスおよび構造体は、パブリックまたは内部のいずれかになります。アクセス修飾子が指定されていない場合、Internal がデフォルトです。

namespace Wiggle.CategoryXMLExporter.IEntities
{
    public interface IRange
    {
        long ID { get; }
        Dictionary<ILanguage, string> rangeNames { get; set; }
    }
}
于 2012-05-04T11:46:53.800 に答える
0

IRangeは名前空間にWiggle.CategoryXMLExporter.IEntitiesあるため、それを参照する必要があります。インターフェースも作るpublic

于 2012-05-04T11:44:45.483 に答える
0

が定義されているWiggle.CategoryXMLExporter.IEntitiesため、using 句に名前空間を追加する必要があります。IRange

using Wiggle.CategoryXMLExporter.IEntities;

また、別のアセンブリにある場合は、それを作成する必要がありますpublic

于 2012-05-04T11:45:19.087 に答える
0

上記に加えて、参照されるライブラリが、選択されたアクティブな構成とプラットフォームでビルドされるように構成されていることを確認する必要がある場合があります。

  1. Visual Studio 2012 または 2013 で、ソリューションを右クリックし、[構成マネージャー] を選択します。

  2. 選択した「アクティブ ソリューション構成」(「デバッグ」または「リリース」など) および「アクティブ ソリューション プラットフォーム」(「任意の CPU」、「x64」、「x86」、または「ARM」など) について、インターフェイスとその依存関係には、「ビルド」がチェックされています。

于 2015-01-04T19:32:23.630 に答える