5

我正在使用 C# 中的 WPF 应用程序。我在静态类中定义了许多常量,如下所示:

项目1:

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

然后我需要做的就是在项目 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
   }
}

我只是想不出一种从第二个程序集中访问我的静态常量类的方法。我也无法添加对第一个程序集的引用,因为它会导致循环依赖(第二个项目程序集是第一个项目程序集使用的 WPF 控件)。

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

4

3 回答 3

2

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

于 2012-06-21T06:33:00.223 回答
0

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

编辑:

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

于 2012-06-21T03:31:13.277 回答
0

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

这是一个 MSDN 链接http://msdn.microsoft.com/en-us/library/wkze6zky.aspx

这是一个带有图片的 SO 答案>在 Visual Studio 2010 中将项目添加到项目中

于 2012-06-21T03:18:46.043 回答