[英]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.