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