繁体   English   中英

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

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM