0

Commons私のソリューションには、とを含むいくつかのプロジェクトが含まれていますTerminatorConsole2。今、ファイルCommons.Constantsからクラスを参照したい:TerminatorConsole2.Utils.Constants

namespace TerminatorConsole2.Utils
{
    class Constants
    {
        public const string MANAGEMENT_CONSOLE_ADDRESS =
            Commons.Constants.USE_EXTRA_WCF_INSTANCE ?
                "net.pipe://localhost/xxx" :
                "net.pipe://localhost";

しかし、「コモンズ」で「シンボルを解決できません」というメッセージが表示されます。「コモンズを使用する」を追加しても解決しません。同じエラーが発生します。

あるプロジェクトが同じソリューションの別のプロジェクトのクラスを使用できないのはなぜですか?

UPD追加Constantsクラス。ただし、別のプロジェクトで既に使用しているため、このクラスは問題ないと思います。

namespace Commons
{

public class Constants
{
    public const int MAX_INSTRUMENTS_NUMBER_IN_SYSTEM = 200;
    public const bool USE_EXTRA_WCF_INSTANCE = true;
}

}
4

3 に答える 3

2

デフォルトでは、クラスのスコープは internal です。これは、そのアセンブリ内でアクセスできることを意味します。クラスをパブリックにして、他のアセンブリからアクセスできるようにします。アクセス修飾子の詳細また、参照しているアセンブリの参照を追加したことを確認してください。

変化する

class Constants
    {
        public const string MANAGEMENT_CONSOLE_ADDRESS =
            Commons.Constants.USE_EXTRA_WCF_INSTANCE ?
                "net.pipe://localhost/xxx" :
                "net.pipe://localhost";

public class Constants
    {
        public const string MANAGEMENT_CONSOLE_ADDRESS =
            Commons.Constants.USE_EXTRA_WCF_INSTANCE ?
                "net.pipe://localhost/xxx" :
                "net.pipe://localhost";
于 2012-10-06T09:01:20.270 に答える
0

jeroenhはコメントで質問に正しく答えました...参照を追加する必要がありました。

public使用されるクラスのみがパブリックである必要があるため、クラスを宣言する必要はありませんでした。「使用する」クラスはパブリックである必要はありません。

于 2012-10-06T09:20:02.913 に答える
0

publicこれを試してください:クラスに追加Constants

namespace TerminatorConsole2.Utils
{
    public class Constants
    {
        public const string MANAGEMENT_CONSOLE_ADDRESS =
            Commons.Constants.USE_EXTRA_WCF_INSTANCE ?
                "net.pipe://localhost/xxx" :
                "net.pipe://localhost";
    }
 }
于 2012-10-06T09:08:50.653 に答える