我正在使用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控件)。
我正在尝试做甚么可能吗?目前我的解决方法是在构造函数中传递所有必需的常量,但我宁愿直接访问它们。
答案 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的引用。然后代码应该编译。
编辑:
对不起,我知道你已经考虑过了。是的,有人评论说通过引入第三个程序集来避免循环依赖问题。