Reputation: 24067
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
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
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
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