簡體   English   中英

如何訪問同一命名空間中的靜態類但是另一個程序集?

[英]How to access a static class in same namespace but another assembly?

我正在使用C#中的WPF應用程序。 我在靜態類中定義了許多常量,如下所示:

PROJECT1:

namespace MyCompany
{
   public static class Constants
   {
      public static int MY_CONSTANT = 123456;
   }
}

然后我需要做的就是在Project 1中的任何地方訪問我的常量:

int x = Constants.MY_CONSTANT;

現在我將另一個項目添加到同一個解決方案中,並使用相同的根命名空間:

項目2

namespace MyCompany.MyControl
{
   class VideoControl
   {
      int x;
      x = Constants.MY_CONSTANT; //<-- doesn't work
      x = MyCompany.Constants.MY_CONSTANT; //<-- doesn't work either
   }
}

我只是無法找到從第二個程序集訪問我的靜態Constants類的方法。 我也無法添加對第一個程序集的引用,因為它導致循環依賴(第二個項目程序集是第一個項目程序集使用的WPF控件)。

我正在努力做甚么可能嗎? 目前我的解決方法是在構造函數中傳遞所有必需的常量,但我寧願直接訪問它們。

您可以將所有靜態常量從項目1移動到項目2,因此,項目1和項目2都可以看到所有常量; 我建議引入另一個項目(可能很常見),它可以幫助管理所有其他項目共享的所有內容。 這是一個共同的基礎設施項目。

你必須在Project 1中添加一個引用到Project 2,然后它應該工作得很好。 你需要一個圖形來說明如何嗎?

這是一個MSDN鏈接http://msdn.microsoft.com/en-us/library/wkze6zky.aspx

這里是圖片的回答> 在Visual Studio 2010中將項目添加到項目中

另一個答案很接近,但它實際上是相反的:項目2需要對項目1的引用。然后代碼應該編譯。

編輯:

對不起,我知道你已經考慮過了。 是的,有人評論說通過引入第三個程序集來避免循環依賴問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM