Oleg Vazhnev
Oleg Vazhnev

Reputation: 24067

can't reference class from another project of the same solution

My solution contains several projects including Commons and TerminatorConsole2. Now I want to refer Commons.Constants class from TerminatorConsole2.Utils.Constants file:

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

But I receive "Cannot resolve symbol" on "Commons". Adding "using Commons" doesn't help, I receive same error.

Why one project can not use class from another project of the same solution?

UPD Adding Constants class. However I already use it from one another project so I think this class is OK:

namespace Commons
{

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

}

Upvotes: 0

Views: 5764

Answers (3)

Oleg Vazhnev
Oleg Vazhnev

Reputation: 24067

jeroenh correctly answered the question in a comment... I needed to add a reference.

I didn't need to declare the class public, since only class which is used should be public. class that "using" doesn't have to be public.

Upvotes: 0

Adil
Adil

Reputation: 148120

By default the scope of class is internal which mean could be accessed within that assembly Make the class public in order to make it accessible to other assemblies. More about access modifiers Also make sure you added the reference of assembly you are reffering.

Change

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

To

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

Upvotes: 2

codingbiz
codingbiz

Reputation: 26386

Try this: add public to class 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";
    }
 }

Upvotes: 0

Related Questions