如何访问同一命名空间中的静态类但是另一个程序集?

时间:2012-06-21 03:17:05

标签: c# wpf namespaces

我正在使用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控件)。

我正在尝试做甚么可能吗?目前我的解决方法是在构造函数中传递所有必需的常量,但我宁愿直接访问它们。

3 个答案:

答案 0 :(得分:2)

您可以将所有静态常量从项目1移动到项目2,因此,项目1和项目2都可以看到所有常量; 我建议引入另一个项目(可能很常见),它可以帮助管理所有其他项目共享的所有内容。这是一个共同的基础设施项目。

答案 1 :(得分:0)

你必须在Project 1中添加一个引用到Project 2,然后它应该可以正常工作。你需要一个图形来说明如何吗?

以下是MSDN链接http://msdn.microsoft.com/en-us/library/wkze6zky.aspx

这是一个带图片的SO答案&gt; Adding projects to a project in Visual Studio 2010

答案 2 :(得分:0)

另一个答案很接近,但实际上是相反的:项目2需要对项目1的引用。然后代码应该编译。

编辑:

对不起,我知道你已经考虑过了。是的,有人评论说通过引入第三个程序集来避免循环依赖问题。