2012-10-06 145 views
1

我的解決方案包含多個項目,其中包括CommonsTerminatorConsole2。現在,我想從TerminatorConsole2.Utils.Constants文件中引用Commons.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"; 

但我收到的「共享」,「無法解析符號」。 添加「使用Commons」沒有幫助,我收到同樣的錯誤。

爲什麼一個項目不能使用來自同一解決方案的另一個項目的類?

UPD添加Constants類。

namespace Commons 
{ 

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

} 
+1

您是否添加了對Common項目的項目引用? http://msdn.microsoft.com/en-us/library/wkze6zky.aspx – jeroenh

+0

@jeroenh謝謝,這解決了我的問題! – javapowered

回答

1

jeroenh在評論中正確回答了問題...我需要添加參考。

我不需要聲明類public,因爲只有使用的類應該是公共的。 「使用」類不必公開。

1

默認類的範圍內,意爲可以在裝配中進行訪問使類公衆,以使其可以訪問:但是我已經從彼此的項目,所以我覺得這個類是OK使用到其他組件。更多關於access modifiers另外請確保您添加了您正在接受的裝配參考。

變化

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"; 
+0

這兩者有什麼區別?我想你錯過了'public' class modifier – codingbiz

+0

謝謝@codingbiz,我錯過了更新。 – Adil

+0

在這裏你可以找到關於公共和其他訪問修飾符http://msdn.microsoft.com/en-us/library/ms173121.aspx – Adil

0

試試這個:添加publicConstants

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"; 
    } 
} 
+0

它沒有幫助 – javapowered

+0

您是否添加了對您的項目的參考 - 希望您沒有忘記?它是一個控制檯應用程序或Web應用程序? – codingbiz

+0

是的,我忘了添加一個參考,謝謝jeroenh – javapowered

相關問題